summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.mailmap3
-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-FLV-DISABLED/flavor-detail-get-resp.json4
-rw-r--r--doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml4
-rw-r--r--doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json4
-rw-r--r--doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml4
-rw-r--r--doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json4
-rw-r--r--doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml4
-rw-r--r--doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json4
-rw-r--r--doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml4
-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.json24
-rw-r--r--doc/api_samples/all_extensions/extensions-get-resp.xml9
-rw-r--r--doc/api_samples/all_extensions/flavor-get-resp.json2
-rw-r--r--doc/api_samples/all_extensions/flavor-get-resp.xml4
-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/flavor-get-resp.json4
-rw-r--r--doc/api_samples/flavor-get-resp.xml4
-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-flavor-access/flavor-access-detail-resp.json4
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml4
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-show-resp.json4
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-show-resp.xml4
-rw-r--r--doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json4
-rw-r--r--doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml4
-rw-r--r--doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json4
-rw-r--r--doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml4
-rw-r--r--doc/api_samples/os-flavor-swap/flavor-swap-get-resp.json4
-rw-r--r--doc/api_samples/os-flavor-swap/flavor-swap-get-resp.xml4
-rw-r--r--doc/api_samples/os-flavor-swap/flavor-swap-list-resp.json4
-rw-r--r--doc/api_samples/os-flavor-swap/flavor-swap-list-resp.xml4
-rw-r--r--doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json6
-rw-r--r--doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml6
-rw-r--r--doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json4
-rw-r--r--doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml4
-rw-r--r--doc/ext/nova_todo.py8
-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/il8n.rst13
-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.json5
-rw-r--r--etc/nova/rootwrap.d/baremetal-compute-ipmi.filters2
-rw-r--r--etc/nova/rootwrap.d/compute.filters80
-rw-r--r--etc/nova/rootwrap.d/network.filters16
-rw-r--r--nova/api/ec2/__init__.py24
-rw-r--r--nova/api/ec2/apirequest.py13
-rw-r--r--nova/api/ec2/cloud.py40
-rw-r--r--nova/api/metadata/base.py2
-rw-r--r--nova/api/metadata/handler.py12
-rw-r--r--nova/api/openstack/__init__.py130
-rw-r--r--nova/api/openstack/common.py10
-rw-r--r--nova/api/openstack/compute/__init__.py14
-rw-r--r--nova/api/openstack/compute/contrib/admin_actions.py10
-rw-r--r--nova/api/openstack/compute/contrib/aggregates.py66
-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/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.py8
-rw-r--r--nova/api/openstack/compute/contrib/hosts.py5
-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.py67
-rw-r--r--nova/api/openstack/compute/contrib/server_usage.py97
-rw-r--r--nova/api/openstack/compute/contrib/services.py8
-rw-r--r--nova/api/openstack/compute/contrib/simple_tenant_usage.py2
-rw-r--r--nova/api/openstack/compute/contrib/volumes.py37
-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.py66
-rw-r--r--nova/api/openstack/compute/views/servers.py2
-rw-r--r--nova/api/openstack/extensions.py23
-rw-r--r--nova/api/openstack/wsgi.py15
-rw-r--r--nova/api/openstack/xmlutil.py7
-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.py71
-rw-r--r--nova/cells/opts.py3
-rw-r--r--nova/cells/rpcapi.py20
-rw-r--r--nova/cells/scheduler.py205
-rw-r--r--nova/cells/state.py17
-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/all.py10
-rw-r--r--nova/cmd/api.py4
-rw-r--r--nova/cmd/baremetal_deploy_helper.py2
-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.py30
-rw-r--r--nova/compute/__init__.py54
-rw-r--r--nova/compute/api.py573
-rw-r--r--nova/compute/cells_api.py30
-rw-r--r--nova/compute/flavors.py83
-rwxr-xr-xnova/compute/manager.py405
-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.py357
-rw-r--r--nova/conductor/manager.py128
-rw-r--r--nova/conductor/rpcapi.py77
-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.py136
-rw-r--r--nova/db/sqlalchemy/api.py684
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py2
-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/models.py136
-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/__init__.py0
-rw-r--r--nova/hacking/checks.py55
-rw-r--r--nova/image/s3.py142
-rw-r--r--nova/locale/bg_BG/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/bs/LC_MESSAGES/nova.po3025
-rw-r--r--nova/locale/ca/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/cs/LC_MESSAGES/nova.po3083
-rw-r--r--nova/locale/da/LC_MESSAGES/nova.po3025
-rw-r--r--nova/locale/de/LC_MESSAGES/nova.po3030
-rw-r--r--nova/locale/en_AU/LC_MESSAGES/nova.po3040
-rw-r--r--nova/locale/en_GB/LC_MESSAGES/nova.po3033
-rw-r--r--nova/locale/en_US/LC_MESSAGES/nova.po3085
-rw-r--r--nova/locale/es/LC_MESSAGES/nova.po3042
-rw-r--r--nova/locale/fi_FI/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/fr/LC_MESSAGES/nova.po3046
-rw-r--r--nova/locale/hr/LC_MESSAGES/nova.po11264
-rw-r--r--nova/locale/hu/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/id/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/it/LC_MESSAGES/nova.po3035
-rw-r--r--nova/locale/it_IT/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/ja/LC_MESSAGES/nova.po3042
-rw-r--r--nova/locale/ka_GE/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/ko/LC_MESSAGES/nova.po3030
-rw-r--r--nova/locale/ko_KR/LC_MESSAGES/nova.po3030
-rw-r--r--nova/locale/ms/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/nb/LC_MESSAGES/nova.po3036
-rw-r--r--nova/locale/nl_NL/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/nova.pot3021
-rw-r--r--nova/locale/pt/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/pt_BR/LC_MESSAGES/nova.po3045
-rw-r--r--nova/locale/ro/LC_MESSAGES/nova.po11258
-rw-r--r--nova/locale/ru/LC_MESSAGES/nova.po3080
-rw-r--r--nova/locale/ru_RU/LC_MESSAGES/nova.po11264
-rw-r--r--nova/locale/sw_KE/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/tl/LC_MESSAGES/nova.po3025
-rw-r--r--nova/locale/tr/LC_MESSAGES/nova.po3025
-rw-r--r--nova/locale/tr_TR/LC_MESSAGES/nova.po3066
-rw-r--r--nova/locale/uk/LC_MESSAGES/nova.po3025
-rw-r--r--nova/locale/vi_VN/LC_MESSAGES/nova.po3025
-rw-r--r--nova/locale/zh_CN/LC_MESSAGES/nova.po3083
-rw-r--r--nova/locale/zh_HK/LC_MESSAGES/nova.po11263
-rw-r--r--nova/locale/zh_TW/LC_MESSAGES/nova.po3028
-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.py20
-rw-r--r--nova/network/security_group/security_group_base.py4
-rw-r--r--nova/notifications.py6
-rw-r--r--nova/objects/__init__.py13
-rw-r--r--nova/objects/base.py377
-rw-r--r--nova/objects/instance.py238
-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/jsonutils.py8
-rw-r--r--nova/openstack/common/log.py18
-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.py4
-rw-r--r--nova/openstack/common/rpc/common.py4
-rw-r--r--nova/openstack/common/rpc/dispatcher.py29
-rw-r--r--nova/openstack/common/rpc/impl_qpid.py111
-rw-r--r--nova/openstack/common/rpc/proxy.py58
-rw-r--r--nova/openstack/common/rpc/serializer.py52
-rw-r--r--nova/openstack/common/service.py333
-rw-r--r--nova/openstack/common/threadgroup.py121
-rw-r--r--nova/paths.py3
-rw-r--r--nova/quota.py10
-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.py321
-rw-r--r--nova/servicegroup/drivers/db.py8
-rw-r--r--nova/servicegroup/drivers/mc.py8
-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.py50
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_quotas.py33
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_security_groups.py52
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_server_usage.py131
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_services.py11
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py12
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_volumes.py76
-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.py1
-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.py198
-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.py16
-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.py1191
-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_multiple_nodes.py2
-rw-r--r--nova/tests/compute/test_resource_tracker.py22
-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.py173
-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)1580
-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)334
-rw-r--r--nova/tests/fake_instance.py40
-rw-r--r--nova/tests/fake_ldap.py12
-rw-r--r--nova/tests/fake_network.py5
-rw-r--r--nova/tests/fake_policy.py6
-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-FLV-DISABLED/flavor-detail-get-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml.tpl2
-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.tpl24
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.xml.tpl9
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.json.tpl4
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.xml.tpl2
-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/flavor-get-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/flavor-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/flavors-list-resp.json.tpl2
-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-flavor-access/flavor-access-detail-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml.tpl2
-rw-r--r--nova/tests/integrated/test_api_samples.py575
-rw-r--r--nova/tests/integrated/test_multiprocess_api.py4
-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.py186
-rw-r--r--nova/tests/objects/test_objects.py451
-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.py45
-rw-r--r--nova/tests/test_service.py5
-rw-r--r--nova/tests/test_utils.py15
-rw-r--r--nova/tests/utils.py4
-rw-r--r--nova/tests/virt/baremetal/__init__.py (renamed from nova/tests/baremetal/db/__init__.py)2
-rw-r--r--nova/tests/virt/baremetal/db/__init__.py (renamed from nova/tests/baremetal/__init__.py)2
-rw-r--r--nova/tests/virt/baremetal/db/base.py (renamed from nova/tests/baremetal/db/base.py)0
-rw-r--r--nova/tests/virt/baremetal/db/test_bm_interface.py (renamed from nova/tests/baremetal/db/test_bm_interface.py)2
-rw-r--r--nova/tests/virt/baremetal/db/test_bm_node.py (renamed from nova/tests/baremetal/db/test_bm_node.py)4
-rw-r--r--nova/tests/virt/baremetal/db/test_bm_pxe_ip.py (renamed from nova/tests/baremetal/db/test_bm_pxe_ip.py)4
-rw-r--r--nova/tests/virt/baremetal/db/utils.py (renamed from nova/tests/baremetal/db/utils.py)1
-rw-r--r--nova/tests/virt/baremetal/test_baremetal_migrations.conf (renamed from nova/tests/test_baremetal_migrations.conf)0
-rw-r--r--nova/tests/virt/baremetal/test_driver.py (renamed from nova/tests/baremetal/test_driver.py)4
-rw-r--r--nova/tests/virt/baremetal/test_ipmi.py (renamed from nova/tests/baremetal/test_ipmi.py)2
-rw-r--r--nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py (renamed from nova/tests/baremetal/test_nova_baremetal_deploy_helper.py)2
-rw-r--r--nova/tests/virt/baremetal/test_nova_baremetal_manage.py (renamed from nova/tests/baremetal/test_nova_baremetal_manage.py)2
-rw-r--r--nova/tests/virt/baremetal/test_pxe.py (renamed from nova/tests/baremetal/test_pxe.py)5
-rwxr-xr-xnova/tests/virt/baremetal/test_tilera.py (renamed from nova/tests/baremetal/test_tilera.py)5
-rwxr-xr-xnova/tests/virt/baremetal/test_tilera_pdu.py (renamed from nova/tests/baremetal/test_tilera_pdu.py)2
-rw-r--r--nova/tests/virt/baremetal/test_utils.py (renamed from nova/tests/baremetal/test_utils.py)0
-rw-r--r--nova/tests/virt/baremetal/test_virtual_power_driver.py (renamed from nova/tests/baremetal/test_virtual_power_driver.py)9
-rw-r--r--nova/tests/virt/baremetal/test_volume_driver.py (renamed from nova/tests/baremetal/test_volume_driver.py)0
-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/__init__.py (renamed from nova/tests/xenapi/__init__.py)7
-rw-r--r--nova/tests/virt/libvirt/fake_imagebackend.py (renamed from nova/tests/fake_imagebackend.py)0
-rw-r--r--nova/tests/virt/libvirt/fake_libvirt_utils.py (renamed from nova/tests/fake_libvirt_utils.py)5
-rw-r--r--nova/tests/virt/libvirt/fakelibvirt.py (renamed from nova/tests/fakelibvirt.py)4
-rw-r--r--nova/tests/virt/libvirt/test_fakelibvirt.py (renamed from nova/tests/test_fakelibvirt.py)8
-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.py (renamed from nova/tests/test_imagebackend.py)37
-rw-r--r--nova/tests/virt/libvirt/test_imagecache.py (renamed from nova/tests/test_imagecache.py)5
-rw-r--r--nova/tests/virt/libvirt/test_libvirt.py (renamed from nova/tests/test_libvirt.py)88
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_blockinfo.py (renamed from nova/tests/test_libvirt_blockinfo.py)2
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_config.py (renamed from nova/tests/test_libvirt_config.py)0
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_utils.py (renamed from nova/tests/test_libvirt_utils.py)0
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_vif.py (renamed from nova/tests/test_libvirt_vif.py)2
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_volume.py (renamed from nova/tests/test_libvirt_volume.py)74
-rw-r--r--nova/tests/virt/powervm/__init__.py16
-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)8
-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)104
-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_volumeops.py2
-rw-r--r--nova/tests/virt/xenapi/test_xenapi.py (renamed from nova/tests/test_xenapi.py)47
-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.py38
-rw-r--r--nova/virt/baremetal/db/sqlalchemy/migrate_repo/versions/007_drop_prov_mac_address.py36
-rw-r--r--nova/virt/baremetal/db/sqlalchemy/models.py1
-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.py33
-rwxr-xr-xnova/virt/driver.py28
-rwxr-xr-xnova/virt/fake.py4
-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
-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.py98
-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/network_util.py5
-rw-r--r--nova/virt/vmwareapi/read_write_util.py6
-rw-r--r--nova/virt/vmwareapi/vmops.py13
-rw-r--r--nova/virt/xenapi/agent.py34
-rwxr-xr-xnova/virt/xenapi/driver.py11
-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.py47
-rw-r--r--openstack-common.conf5
-rw-r--r--requirements.txt (renamed from tools/pip-requires)1
-rwxr-xr-xrun_tests.sh4
-rw-r--r--setup.cfg8
-rw-r--r--smoketests/base.py2
-rw-r--r--test-requirements.txt (renamed from tools/test-requires)8
-rwxr-xr-xtools/colorizer.py2
-rwxr-xr-xtools/conf/analyze_opts.py4
-rwxr-xr-xtools/conf/generate_sample.sh6
-rw-r--r--tools/flakes.py24
-rwxr-xr-xtools/hacking.py670
-rw-r--r--tools/install_venv.py4
-rwxr-xr-xtools/lintstack.py4
-rw-r--r--tools/patch_tox_venv.py4
-rwxr-xr-xtools/run_pep8.sh26
-rw-r--r--tox.ini24
515 files changed, 234084 insertions, 38319 deletions
diff --git a/.mailmap b/.mailmap
index f619a4bf0..314596aa1 100644
--- a/.mailmap
+++ b/.mailmap
@@ -86,12 +86,15 @@ 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>
Joel Moore <joelbm24@gmail.com> Joel Moore joelbm24@gmail.com <>
John Griffith <john.griffith@solidfire.com> john-griffith <john.griffith@solidfire.com>
John Tran <jtran@attinteractive.com> John Tran <jhtran@att.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-FLV-DISABLED/flavor-detail-get-resp.json b/doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.json
index 42e0e21ce..5c17c84be 100644
--- a/doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.json
+++ b/doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.json
@@ -2,7 +2,7 @@
"flavors": [
{
"OS-FLV-DISABLED:disabled": false,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -91,4 +91,4 @@
"vcpus": 8
}
]
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml b/doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml
index 92b51a866..95d8b5d6d 100644
--- a/doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml
+++ b/doc/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-DISABLED:disabled="False">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-DISABLED:disabled="False">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
</flavor>
@@ -20,4 +20,4 @@
<atom:link href="http://openstack.example.com/v2/openstack/flavors/5" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/5" rel="bookmark"/>
</flavor>
-</flavors> \ No newline at end of file
+</flavors>
diff --git a/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json b/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json
index 3fd5fa1d7..7587e055b 100644
--- a/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json
+++ b/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json
@@ -1,7 +1,7 @@
{
"flavor": {
"OS-FLV-DISABLED:disabled": false,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -17,4 +17,4 @@
"ram": 512,
"vcpus": 1
}
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml b/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml
index 6abd22641..d49c273d6 100644
--- a/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml
+++ b/doc/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-DISABLED:disabled="False">
+<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-DISABLED:disabled="False">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
-</flavor> \ No newline at end of file
+</flavor>
diff --git a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json
index 3b421b4e1..3865f4ef9 100644
--- a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json
+++ b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json
@@ -1,7 +1,7 @@
{
"flavor": {
"OS-FLV-EXT-DATA:ephemeral": 0,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -17,4 +17,4 @@
"ram": 512,
"vcpus": 1
}
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml
index dfecff1fc..653e77cda 100644
--- a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml
+++ b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-EXT-DATA:ephemeral="0">
+<flavor xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-EXT-DATA:ephemeral="0">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
-</flavor> \ No newline at end of file
+</flavor>
diff --git a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json
index ee7696bed..ae29b6c86 100644
--- a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json
+++ b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json
@@ -2,7 +2,7 @@
"flavors": [
{
"OS-FLV-EXT-DATA:ephemeral": 0,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -91,4 +91,4 @@
"vcpus": 8
}
]
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml
index 7b53621b7..dc48eebd8 100644
--- a/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml
+++ b/doc/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-EXT-DATA:ephemeral="0">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-EXT-DATA:ephemeral="0">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
</flavor>
@@ -20,4 +20,4 @@
<atom:link href="http://openstack.example.com/v2/openstack/flavors/5" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/5" rel="bookmark"/>
</flavor>
-</flavors> \ No newline at end of file
+</flavors>
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 258bbb852..3752aedf5 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": [],
diff --git a/doc/api_samples/all_extensions/extensions-get-resp.xml b/doc/api_samples/all_extensions/extensions-get-resp.xml
index 457cb5635..97cfd4abd 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>
diff --git a/doc/api_samples/all_extensions/flavor-get-resp.json b/doc/api_samples/all_extensions/flavor-get-resp.json
index d37117d84..b68bc3c97 100644
--- a/doc/api_samples/all_extensions/flavor-get-resp.json
+++ b/doc/api_samples/all_extensions/flavor-get-resp.json
@@ -2,7 +2,7 @@
"flavor": {
"OS-FLV-DISABLED:disabled": false,
"OS-FLV-EXT-DATA:ephemeral": 0,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
diff --git a/doc/api_samples/all_extensions/flavor-get-resp.xml b/doc/api_samples/all_extensions/flavor-get-resp.xml
index fe0451c1e..53f870ec4 100644
--- a/doc/api_samples/all_extensions/flavor-get-resp.xml
+++ b/doc/api_samples/all_extensions/flavor-get-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1" name="m1.tiny" ram="512" vcpus="1" swap="" rxtx_factor="1.0" disk="0" id="1" os-flavor-access:is_public="True" OS-FLV-EXT-DATA:ephemeral="0" OS-FLV-DISABLED:disabled="False">
+<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1" name="m1.tiny" ram="512" vcpus="1" swap="" rxtx_factor="1.0" disk="1" id="1" os-flavor-access:is_public="True" OS-FLV-EXT-DATA:ephemeral="0" OS-FLV-DISABLED:disabled="False">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
-</flavor> \ No newline at end of file
+</flavor>
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/flavor-get-resp.json b/doc/api_samples/flavor-get-resp.json
index 160238eea..723be2898 100644
--- a/doc/api_samples/flavor-get-resp.json
+++ b/doc/api_samples/flavor-get-resp.json
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -16,4 +16,4 @@
"ram": 512,
"vcpus": 1
}
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/flavor-get-resp.xml b/doc/api_samples/flavor-get-resp.xml
index 93b91a531..1101fdb56 100644
--- a/doc/api_samples/flavor-get-resp.xml
+++ b/doc/api_samples/flavor-get-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1">
+<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="1">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
-</flavor> \ No newline at end of file
+</flavor>
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-flavor-access/flavor-access-detail-resp.json b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.json
index f5e8a7584..03758ca68 100644
--- a/doc/api_samples/os-flavor-access/flavor-access-detail-resp.json
+++ b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.json
@@ -1,7 +1,7 @@
{
"flavors": [
{
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -91,4 +91,4 @@
"vcpus": 8
}
]
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml
index 1cbe69c7d..3099fa98f 100644
--- a/doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml
+++ b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
</flavor>
@@ -20,4 +20,4 @@
<atom:link href="http://openstack.example.com/v2/openstack/flavors/5" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/5" rel="bookmark"/>
</flavor>
-</flavors> \ No newline at end of file
+</flavors>
diff --git a/doc/api_samples/os-flavor-access/flavor-access-show-resp.json b/doc/api_samples/os-flavor-access/flavor-access-show-resp.json
index a60b8cc62..0a27a086d 100644
--- a/doc/api_samples/os-flavor-access/flavor-access-show-resp.json
+++ b/doc/api_samples/os-flavor-access/flavor-access-show-resp.json
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -17,4 +17,4 @@
"ram": 512,
"vcpus": 1
}
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-flavor-access/flavor-access-show-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-show-resp.xml
index ae699cb07..3fa7f0c43 100644
--- a/doc/api_samples/os-flavor-access/flavor-access-show-resp.xml
+++ b/doc/api_samples/os-flavor-access/flavor-access-show-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
+<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
-</flavor> \ No newline at end of file
+</flavor>
diff --git a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json
index 63eaddeb6..ac67e6585 100644
--- a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json
+++ b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -17,4 +17,4 @@
"rxtx_factor": 1.0,
"vcpus": 1
}
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml
index 78b430eca..a07dfcfb9 100644
--- a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml
+++ b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
+<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
-</flavor> \ No newline at end of file
+</flavor>
diff --git a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json
index 81e9c993c..03f4360d9 100644
--- a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json
+++ b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json
@@ -1,7 +1,7 @@
{
"flavors": [
{
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -91,4 +91,4 @@
"vcpus": 8
}
]
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml
index 05192e3f9..c204e7cdf 100644
--- a/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml
+++ b/doc/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
</flavor>
@@ -20,4 +20,4 @@
<atom:link href="http://openstack.example.com/v2/openstack/flavors/5" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/5" rel="bookmark"/>
</flavor>
-</flavors> \ No newline at end of file
+</flavors>
diff --git a/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.json b/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.json
index 15604fe2b..2a8e394db 100644
--- a/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.json
+++ b/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.json
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -17,4 +17,4 @@
"swap": "",
"vcpus": 1
}
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.xml b/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.xml
index 5357967f3..2cf38aa6c 100644
--- a/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.xml
+++ b/doc/api_samples/os-flavor-swap/flavor-swap-get-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" swap="">
+<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" swap="">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
-</flavor> \ No newline at end of file
+</flavor>
diff --git a/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.json b/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.json
index 5bb94f348..b5377ed4a 100644
--- a/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.json
+++ b/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.json
@@ -1,7 +1,7 @@
{
"flavors": [
{
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -91,4 +91,4 @@
"vcpus": 8
}
]
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.xml b/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.xml
index 55b54f700..d9a40dd96 100644
--- a/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.xml
+++ b/doc/api_samples/os-flavor-swap/flavor-swap-list-resp.xml
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" swap="">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" swap="">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
</flavor>
@@ -20,4 +20,4 @@
<atom:link href="http://openstack.example.com/v2/openstack/flavors/5" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/5" rel="bookmark"/>
</flavor>
-</flavors> \ No newline at end of file
+</flavors>
diff --git a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json
index 5020a2a81..6ab0e1fd5 100644
--- a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json
+++ b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json
@@ -6,7 +6,7 @@
"flavor": "m1.tiny",
"hours": 1.0,
"instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8fe0",
- "local_gb": 0,
+ "local_gb": 1,
"memory_mb": 512,
"name": "new-server-test",
"started_at": "2012-10-08T20:10:44.541277",
@@ -20,8 +20,8 @@
"stop": "2012-10-08T21:10:44.587336",
"tenant_id": "openstack",
"total_hours": 1.0,
- "total_local_gb_usage": 0.0,
+ "total_local_gb_usage": 1.0,
"total_memory_mb_usage": 512.0,
"total_vcpus_usage": 1.0
}
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml
index 2da8ebea1..56f95edc4 100644
--- a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml
+++ b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<tenant_usage>
<tenant_id>openstack</tenant_id>
- <total_local_gb_usage>0.0</total_local_gb_usage>
+ <total_local_gb_usage>1.0</total_local_gb_usage>
<total_vcpus_usage>1.0</total_vcpus_usage>
<total_memory_mb_usage>512.0</total_memory_mb_usage>
<total_hours>1.0</total_hours>
@@ -13,7 +13,7 @@
<name>new-server-test</name>
<hours>1.0</hours>
<memory_mb>512</memory_mb>
- <local_gb>0</local_gb>
+ <local_gb>1</local_gb>
<vcpus>1</vcpus>
<tenant_id>openstack</tenant_id>
<flavor>m1.tiny</flavor>
@@ -23,4 +23,4 @@
<uptime>3600</uptime>
</server_usage>
</server_usages>
-</tenant_usage> \ No newline at end of file
+</tenant_usage>
diff --git a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json
index fb1d0f79f..ba45c4b5c 100644
--- a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json
+++ b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json
@@ -5,9 +5,9 @@
"stop": "2012-10-08T22:10:44.587336",
"tenant_id": "openstack",
"total_hours": 1.0,
- "total_local_gb_usage": 0.0,
+ "total_local_gb_usage": 1.0,
"total_memory_mb_usage": 512.0,
"total_vcpus_usage": 1.0
}
]
-} \ No newline at end of file
+}
diff --git a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml
index 4fca57e1d..8807691b7 100644
--- a/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml
+++ b/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml
@@ -2,7 +2,7 @@
<tenant_usages>
<tenant_usage>
<tenant_id>openstack</tenant_id>
- <total_local_gb_usage>0.0</total_local_gb_usage>
+ <total_local_gb_usage>1.0</total_local_gb_usage>
<total_vcpus_usage>1.0</total_vcpus_usage>
<total_memory_mb_usage>512.0</total_memory_mb_usage>
<total_hours>1.0</total_hours>
@@ -10,4 +10,4 @@
<stop>2012-10-08 22:10:51.902640</stop>
<server_usages/>
</tenant_usage>
-</tenant_usages> \ No newline at end of file
+</tenant_usages>
diff --git a/doc/ext/nova_todo.py b/doc/ext/nova_todo.py
index 979a176cf..6f66e2573 100644
--- a/doc/ext/nova_todo.py
+++ b/doc/ext/nova_todo.py
@@ -37,13 +37,13 @@ def process_todo_nodes(app, doctree, fromdocname):
for todo_info in env.todo_all_todos:
para = nodes.paragraph()
- filename = env.doc2path(todo_info['docname'], base=None)
-
# Create a reference
newnode = nodes.reference('', '')
- line_info = todo_info['lineno']
- link = _('%(filename)s, line %(line_info)d') % locals()
+ filename = env.doc2path(todo_info['docname'], base=None)
+ link = (_('%(filename)s, line %(line_info)d') %
+ {'filename': filename, 'line_info': todo_info['lineno']})
+
innernode = nodes.emphasis(link, link)
newnode['refdocname'] = todo_info['docname']
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/il8n.rst b/doc/source/devref/il8n.rst
index 900ea8a28..3b5ea65e9 100644
--- a/doc/source/devref/il8n.rst
+++ b/doc/source/devref/il8n.rst
@@ -9,14 +9,11 @@ in a ``_()`` function call. For example::
LOG.debug(_("block_device_mapping %s"), block_device_mapping)
-If you have multiple arguments, the convention is to use named parameters.
-It's common to use the ``locals()`` dict (which contains the names and values
-of the local variables in the current scope) to do the string interpolation.
-For example::
-
- label = ...
- sr_ref = ...
- LOG.debug(_('Introduced %(label)s as %(sr_ref)s.') % locals())
+Do not use ``locals()`` for formatting messages because:
+1. It is not as clear as using explicit dicts.
+2. It could produce hidden errors during refactoring.
+3. Changing the name of a variable causes a change in the message.
+4. It creates a lot of otherwise unused variables.
If you do not follow the project conventions, your code may cause the
LocalizationTestCase.test_multiple_positional_format_placeholders test to fail
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 d4f2aaad9..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",
diff --git a/etc/nova/rootwrap.d/baremetal-compute-ipmi.filters b/etc/nova/rootwrap.d/baremetal-compute-ipmi.filters
index a2858cd11..4132a9996 100644
--- a/etc/nova/rootwrap.d/baremetal-compute-ipmi.filters
+++ b/etc/nova/rootwrap.d/baremetal-compute-ipmi.filters
@@ -3,7 +3,7 @@
[Filters]
# nova/virt/baremetal/ipmi.py: 'ipmitool', ..
-ipmitool: CommandFilter, /usr/bin/ipmitool, root
+ipmitool: CommandFilter, ipmitool, root
# nova/virt/baremetal/ipmi.py: 'kill', '-TERM', str(console_pid)
kill_shellinaboxd: KillFilter, root, /usr/local/bin/shellinaboxd, -15, -TERM
diff --git a/etc/nova/rootwrap.d/compute.filters b/etc/nova/rootwrap.d/compute.filters
index 6d4082940..88fa74d6b 100644
--- a/etc/nova/rootwrap.d/compute.filters
+++ b/etc/nova/rootwrap.d/compute.filters
@@ -4,48 +4,48 @@
[Filters]
# nova/virt/disk/mount/api.py: 'kpartx', '-a', device
# nova/virt/disk/mount/api.py: 'kpartx', '-d', device
-kpartx: CommandFilter, /sbin/kpartx, root
+kpartx: CommandFilter, kpartx, root
# nova/virt/xenapi/vm_utils.py: tune2fs, -O ^has_journal, part_path
# nova/virt/xenapi/vm_utils.py: tune2fs, -j, partition_path
-tune2fs: CommandFilter, /sbin/tune2fs, root
+tune2fs: CommandFilter, tune2fs, root
# nova/virt/disk/mount/api.py: 'mount', mapped_device
# nova/virt/disk/api.py: 'mount', '-o', 'bind', src, target
# nova/virt/xenapi/vm_utils.py: 'mount', '-t', 'ext2,ext3,ext4,reiserfs'..
# nova/virt/configdrive.py: 'mount', device, mountdir
# nova/virt/libvirt/volume.py: 'mount', '-t', 'sofs' ...
-mount: CommandFilter, /bin/mount, root
+mount: CommandFilter, mount, root
# nova/virt/disk/mount/api.py: 'umount', mapped_device
# nova/virt/disk/api.py: 'umount' target
# nova/virt/xenapi/vm_utils.py: 'umount', dev_path
# nova/virt/configdrive.py: 'umount', mountdir
-umount: CommandFilter, /bin/umount, root
+umount: CommandFilter, umount, root
# nova/virt/disk/mount/nbd.py: 'qemu-nbd', '-c', device, image
# nova/virt/disk/mount/nbd.py: 'qemu-nbd', '-d', device
-qemu-nbd: CommandFilter, /usr/bin/qemu-nbd, root
+qemu-nbd: CommandFilter, qemu-nbd, root
# nova/virt/disk/mount/loop.py: 'losetup', '--find', '--show', image
# nova/virt/disk/mount/loop.py: 'losetup', '--detach', device
-losetup: CommandFilter, /sbin/losetup, root
+losetup: CommandFilter, losetup, root
# nova/virt/disk/vfs/localfs.py: 'tee', canonpath
-tee: CommandFilter, /usr/bin/tee, root
+tee: CommandFilter, tee, root
# nova/virt/disk/vfs/localfs.py: 'mkdir', canonpath
-mkdir: CommandFilter, /bin/mkdir, root
+mkdir: CommandFilter, mkdir, root
# nova/virt/disk/vfs/localfs.py: 'chown'
# nova/virt/libvirt/connection.py: 'chown', os.getuid( console_log
# nova/virt/libvirt/connection.py: 'chown', os.getuid( console_log
# nova/virt/libvirt/connection.py: 'chown', 'root', basepath('disk')
# nova/utils.py: 'chown', owner_uid, path
-chown: CommandFilter, /bin/chown, root
+chown: CommandFilter, chown, root
# nova/virt/disk/vfs/localfs.py: 'chmod'
-chmod: CommandFilter, /bin/chmod, root
+chmod: CommandFilter, chmod, root
# nova/virt/libvirt/vif.py: 'ip', 'tuntap', 'add', dev, 'mode', 'tap'
# nova/virt/libvirt/vif.py: 'ip', 'link', 'set', dev, 'up'
@@ -69,7 +69,7 @@ chmod: CommandFilter, /bin/chmod, root
# nova/network/linux_net.py: 'ip', 'route', 'add', ..
# nova/network/linux_net.py: 'ip', 'route', 'del', .
# nova/network/linux_net.py: 'ip', 'route', 'show', 'dev', dev
-ip: CommandFilter, /sbin/ip, root
+ip: CommandFilter, ip, root
# nova/virt/libvirt/vif.py: 'tunctl', '-b', '-t', dev
# nova/network/linux_net.py: 'tunctl', '-b', '-t', dev
@@ -78,39 +78,39 @@ tunctl: CommandFilter, tunctl, root
# nova/virt/libvirt/vif.py: 'ovs-vsctl', ...
# nova/virt/libvirt/vif.py: 'ovs-vsctl', 'del-port', ...
# nova/network/linux_net.py: 'ovs-vsctl', ....
-ovs-vsctl: CommandFilter, /usr/bin/ovs-vsctl, root
+ovs-vsctl: CommandFilter, ovs-vsctl, root
# nova/network/linux_net.py: 'ovs-ofctl', ....
-ovs-ofctl: CommandFilter, /usr/bin/ovs-ofctl, root
+ovs-ofctl: CommandFilter, ovs-ofctl, root
# nova/virt/libvirt/connection.py: 'dd', if=%s % virsh_output, ...
-dd: CommandFilter, /bin/dd, root
+dd: CommandFilter, dd, root
# nova/virt/xenapi/volume_utils.py: 'iscsiadm', '-m', ...
iscsiadm: CommandFilter, iscsiadm, root
# nova/virt/libvirt/volume.py: 'aoe-revalidate', aoedev
# nova/virt/libvirt/volume.py: 'aoe-discover'
-aoe-revalidate: CommandFilter, /usr/sbin/aoe-revalidate, root
-aoe-discover: CommandFilter, /usr/sbin/aoe-discover, root
+aoe-revalidate: CommandFilter, aoe-revalidate, root
+aoe-discover: CommandFilter, aoe-discover, root
# nova/virt/xenapi/vm_utils.py: parted, --script, ...
# nova/virt/xenapi/vm_utils.py: 'parted', '--script', dev_path, ..*.
parted: CommandFilter, parted, root
# nova/virt/xenapi/vm_utils.py: 'pygrub', '-qn', dev_path
-pygrub: CommandFilter, /usr/bin/pygrub, root
+pygrub: CommandFilter, pygrub, root
# nova/virt/xenapi/vm_utils.py: fdisk %(dev_path)s
-fdisk: CommandFilter, /sbin/fdisk, root
+fdisk: CommandFilter, fdisk, root
# nova/virt/xenapi/vm_utils.py: e2fsck, -f, -p, partition_path
# nova/virt/disk/api.py: e2fsck, -f, -p, image
-e2fsck: CommandFilter, /sbin/e2fsck, root
+e2fsck: CommandFilter, e2fsck, root
# nova/virt/xenapi/vm_utils.py: resize2fs, partition_path
# nova/virt/disk/api.py: resize2fs, image
-resize2fs: CommandFilter, /sbin/resize2fs, root
+resize2fs: CommandFilter, resize2fs, root
# nova/network/linux_net.py: 'ip[6]tables-save' % (cmd, '-t', ...
iptables-save: CommandFilter, iptables-save, root
@@ -125,7 +125,7 @@ ip6tables-restore: CommandFilter, ip6tables-restore, root
arping: CommandFilter, arping, root
# nova/network/linux_net.py: 'dhcp_release', dev, address, mac_address
-dhcp_release: CommandFilter, /usr/bin/dhcp_release, root
+dhcp_release: CommandFilter, dhcp_release, root
# nova/network/linux_net.py: 'kill', '-9', pid
# nova/network/linux_net.py: 'kill', '-HUP', pid
@@ -139,7 +139,7 @@ dnsmasq: DnsmasqFilter, /usr/sbin/dnsmasq, root
dnsmasq_deprecated: DeprecatedDnsmasqFilter, /usr/sbin/dnsmasq, root
# nova/network/linux_net.py: 'radvd', '-C', '%s' % _ra_file(dev, 'conf'..
-radvd: CommandFilter, /usr/sbin/radvd, root
+radvd: CommandFilter, radvd, root
# nova/network/linux_net.py: 'brctl', 'addbr', bridge
# nova/network/linux_net.py: 'brctl', 'setfd', bridge, 0
@@ -149,41 +149,41 @@ brctl: CommandFilter, brctl, root
# nova/virt/libvirt/utils.py: 'mkswap'
# nova/virt/xenapi/vm_utils.py: 'mkswap'
-mkswap: CommandFilter, /sbin/mkswap, root
+mkswap: CommandFilter, mkswap, root
# nova/virt/xenapi/vm_utils.py: 'mkfs'
-mkfs: CommandFilter, /sbin/mkfs, root
+mkfs: CommandFilter, mkfs, root
# nova/virt/libvirt/utils.py: 'qemu-img'
-qemu-img: CommandFilter, /usr/bin/qemu-img, root
+qemu-img: CommandFilter, qemu-img, root
# nova/virt/disk/vfs/localfs.py: 'readlink', '-e'
readlink: CommandFilter, readlink, root
# nova/virt/disk/api.py: 'touch', target
-touch: CommandFilter, /usr/bin/touch, root
+touch: CommandFilter, touch, root
# nova/virt/disk/api.py:
-mkfs.ext3: CommandFilter, /sbin/mkfs.ext3, root
-mkfs.ntfs: CommandFilter, /sbin/mkfs.ntfs, root
+mkfs.ext3: CommandFilter, mkfs.ext3, root
+mkfs.ntfs: CommandFilter, mkfs.ntfs, root
# nova/virt/libvirt/connection.py:
read_initiator: ReadFileFilter, /etc/iscsi/initiatorname.iscsi
# nova/virt/libvirt/connection.py:
-lvremove: CommandFilter, /sbin/lvremove, root
+lvremove: CommandFilter, lvremove, root
# nova/virt/libvirt/utils.py:
-lvcreate: CommandFilter, /sbin/lvcreate, root
+lvcreate: CommandFilter, lvcreate, root
# nova/virt/libvirt/utils.py:
-lvs: CommandFilter, /sbin/lvs, root
+lvs: CommandFilter, lvs, root
# nova/virt/libvirt/utils.py:
-vgs: CommandFilter, /sbin/vgs, root
+vgs: CommandFilter, vgs, root
# nova/virt/baremetal/volume_driver.py: 'tgtadm', '--lld', 'iscsi', ...
-tgtadm: CommandFilter, /usr/sbin/tgtadm, root
+tgtadm: CommandFilter, tgtadm, root
# nova/utils.py:read_file_as_root: 'cat', file_path
# (called from nova/virt/disk/vfs/localfs.py:VFSLocalFS.read_file)
@@ -191,17 +191,17 @@ read_passwd: RegExpFilter, cat, root, cat, (/var|/usr)?/tmp/openstack-vfs-localf
read_shadow: RegExpFilter, cat, root, cat, (/var|/usr)?/tmp/openstack-vfs-localfs[^/]+/etc/shadow
# nova/virt/libvirt/volume.py: 'multipath' '-R'
-multipath: CommandFilter, /sbin/multipath, root
+multipath: CommandFilter, multipath, root
# nova/virt/libvirt/utils.py:
-systool: CommandFilter, /usr/bin/systool, root
+systool: CommandFilter, systool, root
# nova/virt/libvirt/volume.py:
-sginfo: CommandFilter, /usr/bin/sginfo, root
-sg_scan: CommandFilter, /usr/bin/sg_scan, root
+sginfo: CommandFilter, sginfo, root
+sg_scan: CommandFilter, sg_scan, root
# nova/virt/xenapi/vm_utils.py:
-xenstore-read: CommandFilter, /usr/bin/xenstore-read, root
+xenstore-read: CommandFilter, xenstore-read, root
-# nova/virt/baremetal/tilera.py: '/usr/sbin/rpc.mountd'
-rpc.mountd: CommandFilter, /usr/sbin/rpc.mountd, root
+# nova/virt/baremetal/tilera.py: 'rpc.mountd'
+rpc.mountd: CommandFilter, rpc.mountd, root
diff --git a/etc/nova/rootwrap.d/network.filters b/etc/nova/rootwrap.d/network.filters
index f29bd16d2..02138cff4 100644
--- a/etc/nova/rootwrap.d/network.filters
+++ b/etc/nova/rootwrap.d/network.filters
@@ -24,20 +24,20 @@
# nova/network/linux_net.py: 'ip', 'route', 'add', ..
# nova/network/linux_net.py: 'ip', 'route', 'del', .
# nova/network/linux_net.py: 'ip', 'route', 'show', 'dev', dev
-ip: CommandFilter, /sbin/ip, root
+ip: CommandFilter, ip, root
# nova/virt/libvirt/vif.py: 'ovs-vsctl', ...
# nova/virt/libvirt/vif.py: 'ovs-vsctl', 'del-port', ...
# nova/network/linux_net.py: 'ovs-vsctl', ....
-ovs-vsctl: CommandFilter, /usr/bin/ovs-vsctl, root
+ovs-vsctl: CommandFilter, ovs-vsctl, root
# nova/network/linux_net.py: 'ovs-ofctl', ....
-ovs-ofctl: CommandFilter, /usr/bin/ovs-ofctl, root
+ovs-ofctl: CommandFilter, ovs-ofctl, root
# nova/network/linux_net.py: 'ebtables', '-D' ...
# nova/network/linux_net.py: 'ebtables', '-I' ...
-ebtables: CommandFilter, /sbin/ebtables, root
-ebtables_usr: CommandFilter, /usr/sbin/ebtables, root
+ebtables: CommandFilter, ebtables, root
+ebtables_usr: CommandFilter, ebtables, root
# nova/network/linux_net.py: 'ip[6]tables-save' % (cmd, '-t', ...
iptables-save: CommandFilter, iptables-save, root
@@ -52,7 +52,7 @@ ip6tables-restore: CommandFilter, ip6tables-restore, root
arping: CommandFilter, arping, root
# nova/network/linux_net.py: 'dhcp_release', dev, address, mac_address
-dhcp_release: CommandFilter, /usr/bin/dhcp_release, root
+dhcp_release: CommandFilter, dhcp_release, root
# nova/network/linux_net.py: 'kill', '-9', pid
# nova/network/linux_net.py: 'kill', '-HUP', pid
@@ -66,7 +66,7 @@ dnsmasq: DnsmasqFilter, /usr/sbin/dnsmasq, root
dnsmasq_deprecated: DeprecatedDnsmasqFilter, /usr/sbin/dnsmasq, root
# nova/network/linux_net.py: 'radvd', '-C', '%s' % _ra_file(dev, 'conf'..
-radvd: CommandFilter, /usr/sbin/radvd, root
+radvd: CommandFilter, radvd, root
# nova/network/linux_net.py: 'brctl', 'addbr', bridge
# nova/network/linux_net.py: 'brctl', 'setfd', bridge, 0
@@ -75,7 +75,7 @@ radvd: CommandFilter, /usr/sbin/radvd, root
brctl: CommandFilter, brctl, root
# nova/network/linux_net.py: 'sysctl', ....
-sysctl: CommandFilter, /sbin/sysctl, root
+sysctl: CommandFilter, sysctl, root
# nova/network/linux_net.py: 'conntrack'
conntrack: CommandFilter, conntrack, root
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py
index 7ce18685b..12ea5f615 100644
--- a/nova/api/ec2/__init__.py
+++ b/nova/api/ec2/__init__.py
@@ -78,7 +78,7 @@ CONF.import_opt('use_forwarded_for', 'nova.api.auth')
def ec2_error(req, request_id, code, message):
"""Helper to send an ec2_compatible error."""
- LOG.error(_('%(code)s: %(message)s') % locals())
+ LOG.error(_('%(code)s: %(message)s'), {'code': code, 'message': message})
resp = webob.Response()
resp.status = 400
resp.headers['Content-Type'] = 'text/xml'
@@ -180,11 +180,12 @@ class Lockout(wsgi.Middleware):
# NOTE(vish): To use incr, failures has to be a string.
self.mc.set(failures_key, '1', time=CONF.lockout_window * 60)
elif failures >= CONF.lockout_attempts:
- lock_mins = CONF.lockout_minutes
- msg = _('Access key %(access_key)s has had %(failures)d'
- ' failed authentications and will be locked out'
- ' for %(lock_mins)d minutes.') % locals()
- LOG.warn(msg)
+ LOG.warn(_('Access key %(access_key)s has had %(failures)d '
+ 'failed authentications and will be locked out '
+ 'for %(lock_mins)d minutes.'),
+ {'access_key': access_key,
+ 'failures': failures,
+ 'lock_mins': CONF.lockout_minutes})
self.mc.set(failures_key, str(failures),
time=CONF.lockout_minutes * 60)
return res
@@ -250,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)
@@ -333,7 +334,8 @@ class Requestify(wsgi.Middleware):
LOG.debug(_('action: %s'), action)
for key, value in args.items():
- LOG.debug(_('arg: %(key)s\t\tval: %(value)s') % locals())
+ LOG.debug(_('arg: %(key)s\t\tval: %(value)s'),
+ {'key': key, 'value': value})
# Success!
api_request = apirequest.APIRequest(self.controller, action,
@@ -409,7 +411,9 @@ class Authorizer(wsgi.Middleware):
return self.application
else:
LOG.audit(_('Unauthorized request for controller=%(controller)s '
- 'and action=%(action)s') % locals(), context=context)
+ 'and action=%(action)s'),
+ {'controller': controller, 'action': action},
+ context=context)
raise webob.exc.HTTPUnauthorized()
def _matches_any_role(self, context, roles):
@@ -501,8 +505,6 @@ class Executor(wsgi.Application):
LOG.info(_('NotFound raised: %s'), unicode(ex), context=context)
return ec2_error(req, request_id, type(ex).__name__, unicode(ex))
except exception.EC2APIError as ex:
- LOG.exception(_('EC2APIError raised: %s'), unicode(ex),
- context=context)
if ex.code:
return ec2_error(req, request_id, ex.code, unicode(ex))
else:
diff --git a/nova/api/ec2/apirequest.py b/nova/api/ec2/apirequest.py
index ca1302fad..a2c20efc0 100644
--- a/nova/api/ec2/apirequest.py
+++ b/nova/api/ec2/apirequest.py
@@ -21,6 +21,7 @@ APIRequest class
"""
import datetime
+from lxml import etree
# TODO(termie): replace minidom with etree
from xml.dom import minidom
@@ -57,11 +58,10 @@ class APIRequest(object):
method = getattr(self.controller,
ec2utils.camelcase_to_underscore(self.action))
except AttributeError:
- controller = self.controller
- action = self.action
- _error = _('Unsupported API request: controller = %(controller)s,'
- ' action = %(action)s') % locals()
- LOG.exception(_error)
+ LOG.exception(_('Unsupported API request: controller = '
+ '%(controller)s, action = %(action)s'),
+ {'controller': self.controller,
+ 'action': self.action})
# TODO(gundlach): Raise custom exception, trap in apiserver,
# and reraise as 400 error.
raise exception.InvalidRequest()
@@ -96,6 +96,9 @@ class APIRequest(object):
xml.appendChild(response_el)
response = xml.toxml()
+ root = etree.fromstring(response)
+ response = etree.tostring(root, pretty_print=True)
+
xml.unlink()
# Don't write private key to log
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 181dfb0c2..537f74efa 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -620,8 +620,7 @@ class CloudController(object):
validprotocols = ['tcp', 'udp', 'icmp', '6', '17', '1']
if 'ip_protocol' in values and \
values['ip_protocol'] not in validprotocols:
- protocol = values['ip_protocol']
- err = _("Invalid IP protocol %(protocol)s.") % locals()
+ err = _('Invalid IP protocol %s.') % values['ip_protocol']
raise exception.EC2APIError(message=err, code="400")
def revoke_security_group_ingress(self, context, group_name=None,
@@ -874,9 +873,12 @@ class CloudController(object):
volume_id = ec2utils.ec2_vol_id_to_uuid(volume_id)
instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, instance_id)
instance = self.compute_api.get(context, instance_uuid)
- msg = _("Attach volume %(volume_id)s to instance %(instance_id)s"
- " at %(device)s") % locals()
- LOG.audit(msg, context=context)
+ LOG.audit(_('Attach volume %(volume_id)s to instance %(instance_id)s '
+ 'at %(device)s'),
+ {'volume_id': volume_id,
+ 'instance_id': instance_id,
+ 'device': device},
+ context=context)
try:
self.compute_api.attach_volume(context, instance,
@@ -1056,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
@@ -1089,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
@@ -1236,7 +1239,7 @@ class CloudController(object):
return {'publicIp': public_ip}
def release_address(self, context, public_ip, **kwargs):
- LOG.audit(_("Release address %s"), public_ip, context=context)
+ LOG.audit(_('Release address %s'), public_ip, context=context)
try:
self.network_api.release_floating_ip(context, address=public_ip)
return {'return': "true"}
@@ -1244,8 +1247,10 @@ class CloudController(object):
raise exception.EC2APIError(_('Unable to release IP Address.'))
def associate_address(self, context, instance_id, public_ip, **kwargs):
- LOG.audit(_("Associate address %(public_ip)s to"
- " instance %(instance_id)s") % locals(), context=context)
+ LOG.audit(_("Associate address %(public_ip)s to instance "
+ "%(instance_id)s"),
+ {'public_ip': public_ip, 'instance_id': instance_id},
+ context=context)
instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, instance_id)
instance = self.compute_api.get(context, instance_uuid)
@@ -1321,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)),
@@ -1504,9 +1509,10 @@ class CloudController(object):
metadata['properties']['block_device_mapping'] = mappings
image_id = self._register_image(context, metadata)
- msg = _("Registered image %(image_location)s with"
- " id %(image_id)s") % locals()
- LOG.audit(msg, context=context)
+ LOG.audit(_('Registered image %(image_location)s with id '
+ '%(image_id)s'),
+ {'image_location': image_location, 'image_id': image_id},
+ context=context)
return {'imageId': image_id}
def describe_image_attribute(self, context, image_id, attribute, **kwargs):
@@ -1613,10 +1619,10 @@ class CloudController(object):
# CreateImage only supported for the analogue of EBS-backed instances
if not self.compute_api.is_volume_backed_instance(context, instance,
bdms):
- root = instance['root_device_name']
msg = _("Invalid value '%(ec2_instance_id)s' for instanceId. "
"Instance does not have a volume attached at root "
- "(%(root)s)") % locals()
+ "(%(root)s)") % {'root': instance['root_device_name'],
+ 'ec2_instance_id': ec2_instance_id}
raise exception.InvalidParameterValue(err=msg)
# stop the instance if necessary
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/metadata/handler.py b/nova/api/metadata/handler.py
index bbaeba524..1eb30ee4a 100644
--- a/nova/api/metadata/handler.py
+++ b/nova/api/metadata/handler.py
@@ -166,10 +166,14 @@ class MetadataRequestHandler(wsgi.Application):
if expected_signature != signature:
if instance_id:
- w = _('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')
- LOG.warn(w % locals())
+ LOG.warn(_('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'),
+ {'signature': signature,
+ 'expected_signature': expected_signature,
+ 'instance_id': instance_id,
+ 'remote_address': remote_address})
msg = _('Invalid proxy request signature.')
raise webob.exc.HTTPForbidden(explanation=msg)
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index cc276234b..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
@@ -174,18 +212,20 @@ class APIRouter(base_wsgi.Router):
def _setup_extensions(self, ext_mgr):
for extension in ext_mgr.get_controller_extensions():
- ext_name = extension.extension.name
collection = extension.collection
controller = extension.controller
+ msg_format_dict = {'collection': collection,
+ 'ext_name': extension.extension.name}
if collection not in self.resources:
LOG.warning(_('Extension %(ext_name)s: Cannot extend '
- 'resource %(collection)s: No such resource') %
- locals())
+ 'resource %(collection)s: No such resource'),
+ msg_format_dict)
continue
LOG.debug(_('Extension %(ext_name)s extending resource: '
- '%(collection)s') % locals())
+ '%(collection)s'),
+ msg_format_dict)
resource = self.resources[collection]
resource.register_actions(controller)
@@ -208,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
@@ -228,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):
@@ -246,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)
@@ -267,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:
@@ -281,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/common.py b/nova/api/openstack/common.py
index 24250c0af..bec919f4b 100644
--- a/nova/api/openstack/common.py
+++ b/nova/api/openstack/common.py
@@ -113,7 +113,8 @@ def status_from_state(vm_state, task_state='default'):
if status == "UNKNOWN":
LOG.error(_("status is UNKNOWN from vm_state=%(vm_state)s "
"task_state=%(task_state)s. Bad upgrade or db "
- "corrupted?") % locals())
+ "corrupted?"),
+ {'vm_state': vm_state, 'task_state': task_state})
return status
@@ -358,11 +359,12 @@ def raise_http_conflict_for_instance_invalid_state(exc, action):
attr = exc.kwargs.get('attr')
state = exc.kwargs.get('state')
if attr and state:
- msg = _("Cannot '%(action)s' while instance is in %(attr)s %(state)s")
+ msg = _("Cannot '%(action)s' while instance is in %(attr)s "
+ "%(state)s") % {'action': action, 'attr': attr, 'state': state}
else:
# At least give some meaningful message
- msg = _("Instance is in an invalid state for '%(action)s'")
- raise webob.exc.HTTPConflict(explanation=msg % locals())
+ msg = _("Instance is in an invalid state for '%s'") % action
+ raise webob.exc.HTTPConflict(explanation=msg)
class MetadataDeserializer(wsgi.MetadataXMLDeserializer):
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 ff595fad6..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)
@@ -289,11 +289,11 @@ class AdminActionsController(wsgi.Controller):
raise exc.HTTPBadRequest(explanation=ex.format_message())
except Exception:
if host is None:
- msg = _("Live migration of instance %(id)s to another host"
- " failed") % locals()
+ msg = _("Live migration of instance %s to another host "
+ "failed") % id
else:
- msg = _("Live migration of instance %(id)s to host %(host)s"
- " failed") % locals()
+ msg = _("Live migration of instance %(id)s to host %(host)s "
+ "failed") % {'id': id, 'host': host}
LOG.exception(msg)
# Return messages from scheduler
raise exc.HTTPBadRequest(explanation=msg)
diff --git a/nova/api/openstack/compute/contrib/aggregates.py b/nova/api/openstack/compute/contrib/aggregates.py
index b73a50f39..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
@@ -86,8 +86,8 @@ class AggregateController(object):
try:
aggregate = self.api.get_aggregate(context, id)
except exception.AggregateNotFound:
- LOG.info(_("Cannot show aggregate: %(id)s") % locals())
- raise exc.HTTPNotFound
+ LOG.info(_("Cannot show aggregate: %s"), id)
+ 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: %(id)s") % locals())
- raise exc.HTTPNotFound
+ LOG.info(_('Cannot update aggregate: %s'), id)
+ raise exc.HTTPNotFound()
return self._marshall_aggregate(aggregate)
@@ -124,8 +124,8 @@ class AggregateController(object):
try:
self.api.delete_aggregate(context, id)
except exception.AggregateNotFound:
- LOG.info(_("Cannot delete aggregate: %(id)s") % locals())
- raise exc.HTTPNotFound
+ LOG.info(_('Cannot delete aggregate: %s'), id)
+ raise exc.HTTPNotFound()
def action(self, req, id, body):
_actions = {
@@ -137,7 +137,7 @@ class AggregateController(object):
try:
return _actions[action](req, id, data)
except KeyError:
- msg = _("Aggregates does not have %s action") % action
+ msg = _('Aggregates does not have %s action') % action
raise exc.HTTPBadRequest(explanation=msg)
raise exc.HTTPBadRequest(explanation=_("Invalid request body"))
@@ -150,14 +150,14 @@ class AggregateController(object):
try:
aggregate = self.api.add_host_to_aggregate(context, id, host)
except (exception.AggregateNotFound, exception.ComputeHostNotFound):
- LOG.info(_("Cannot add host %(host)s in aggregate "
- "%(id)s") % locals())
- raise exc.HTTPNotFound
+ LOG.info(_('Cannot add host %(host)s in aggregate %(id)s'),
+ {'host': host, 'id': id})
+ raise exc.HTTPNotFound()
except (exception.AggregateHostExists,
exception.InvalidAggregateAction):
- LOG.info(_("Cannot add host %(host)s in aggregate "
- "%(id)s") % locals())
- raise exc.HTTPConflict
+ LOG.info(_('Cannot add host %(host)s in aggregate %(id)s'),
+ {'host': host, 'id': id})
+ raise exc.HTTPConflict()
return self._marshall_aggregate(aggregate)
@get_host_from_body
@@ -169,13 +169,13 @@ class AggregateController(object):
aggregate = self.api.remove_host_from_aggregate(context, id, host)
except (exception.AggregateNotFound, exception.AggregateHostNotFound,
exception.ComputeHostNotFound):
- LOG.info(_("Cannot remove host %(host)s in aggregate "
- "%(id)s") % locals())
- raise exc.HTTPNotFound
+ LOG.info(_('Cannot remove host %(host)s in aggregate %(id)s'),
+ {'host': host, 'id': id})
+ raise exc.HTTPNotFound()
except exception.InvalidAggregateAction:
- LOG.info(_("Cannot remove host %(host)s in aggregate "
- "%(id)s") % locals())
- raise exc.HTTPConflict
+ LOG.info(_('Cannot remove host %(host)s in aggregate %(id)s'),
+ {'host': host, 'id': id})
+ 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") % locals())
- raise exc.HTTPNotFound
+ LOG.info(_('Cannot set metadata %(metadata)s in aggregate %(id)s'),
+ {'metadata': metadata, 'id': id})
+ 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/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 d2cf99431..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']
@@ -244,7 +244,7 @@ class FloatingIPActionController(wsgi.Controller):
if not fixed_address:
fixed_address = fixed_ips[0]['address']
- if len(fixed_ips) > 1:
+ if len(fixed_ips) > 1:
msg = _('multiple fixed_ips exist, using the first: %s')
LOG.warning(msg, fixed_address)
@@ -309,7 +309,7 @@ class FloatingIPActionController(wsgi.Controller):
return webob.Response(status_int=202)
else:
msg = _("Floating ip %(address)s is not associated with instance "
- "%(id)s.") % locals()
+ "%(id)s.") % {'address': address, 'id': id}
raise webob.exc.HTTPUnprocessableEntity(explanation=msg)
diff --git a/nova/api/openstack/compute/contrib/hosts.py b/nova/api/openstack/compute/contrib/hosts.py
index a896678f0..e0ea1203b 100644
--- a/nova/api/openstack/compute/contrib/hosts.py
+++ b/nova/api/openstack/compute/contrib/hosts.py
@@ -202,8 +202,9 @@ class HostController(object):
def _set_host_maintenance(self, context, host_name, mode=True):
"""Start/Stop host maintenance window. On start, it triggers
guest VMs evacuation."""
- LOG.audit(_("Putting host %(host_name)s in maintenance "
- "mode %(mode)s.") % locals())
+ LOG.audit(_("Putting host %(host_name)s in maintenance mode "
+ "%(mode)s."),
+ {'host_name': host_name, 'mode': mode})
try:
result = self.api.set_host_maintenance(context, host_name, mode)
except NotImplementedError:
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..40b085be1 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,
@@ -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..bc5f60b64 100644
--- a/nova/api/openstack/compute/contrib/services.py
+++ b/nova/api/openstack/compute/contrib/services.py
@@ -22,8 +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 utils
+from nova import servicegroup
authorize = extensions.extension_authorizer('compute', 'services')
CONF = cfg.CONF
@@ -71,6 +70,7 @@ class ServiceController(object):
def __init__(self):
self.host_api = compute.HostAPI()
+ self.servicegroup_api = servicegroup.API()
@wsgi.serializers(xml=ServicesIndexTemplate)
def index(self, req):
@@ -79,7 +79,6 @@ class ServiceController(object):
"""
context = req.environ['nova.context']
authorize(context)
- now = timeutils.utcnow()
services = self.host_api.service_get_all(
context, set_zones=True)
@@ -96,8 +95,7 @@ class ServiceController(object):
svcs = []
for svc in services:
- delta = now - (svc['updated_at'] or svc['created_at'])
- alive = abs(utils.total_seconds(delta)) <= CONF.service_down_time
+ alive = self.servicegroup_api.service_is_up(svc)
art = (alive and "up") or "down"
active = 'enabled'
if svc['disabled']:
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/volumes.py b/nova/api/openstack/compute/contrib/volumes.py
index e49c65b2f..0c629f068 100644
--- a/nova/api/openstack/compute/contrib/volumes.py
+++ b/nova/api/openstack/compute/contrib/volumes.py
@@ -27,7 +27,6 @@ from nova import exception
from nova.openstack.common import log as logging
from nova.openstack.common import strutils
from nova.openstack.common import uuidutils
-from nova import utils
from nova import volume
LOG = logging.getLogger(__name__)
@@ -256,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
@@ -397,9 +396,12 @@ class VolumeAttachmentController(wsgi.Controller):
self._validate_volume_id(volume_id)
- msg = _("Attach volume %(volume_id)s to instance %(server_id)s"
- " at %(device)s") % locals()
- LOG.audit(msg, context=context)
+ LOG.audit(_("Attach volume %(volume_id)s to instance %(server_id)s "
+ "at %(device)s"),
+ {'volume_id': volume_id,
+ 'device': device,
+ 'server_id': server_id},
+ context=context)
try:
instance = self.compute_api.get(context, server_id)
@@ -614,27 +616,26 @@ class SnapshotController(wsgi.Controller):
snapshot = body['snapshot']
volume_id = snapshot['volume_id']
- force = snapshot.get('force', False)
LOG.audit(_("Create snapshot from volume %s"), volume_id,
- context=context)
+ context=context)
- if not utils.is_valid_boolstr(force):
+ force = snapshot.get('force', False)
+ try:
+ force = strutils.bool_from_string(force, strict=True)
+ except ValueError:
msg = _("Invalid value '%s' for force.") % force
raise exception.InvalidParameterValue(err=msg)
- if strutils.bool_from_string(force):
- new_snapshot = self.volume_api.create_snapshot_force(context,
- volume_id,
- snapshot.get('display_name'),
- snapshot.get('display_description'))
+ if force:
+ create_func = self.volume_api.create_snapshot_force
else:
- new_snapshot = self.volume_api.create_snapshot(context,
- volume_id,
- snapshot.get('display_name'),
- snapshot.get('display_description'))
+ create_func = self.volume_api.create_snapshot
- retval = _translate_snapshot_detail_view(context, new_snapshot)
+ new_snapshot = create_func(context, volume_id,
+ snapshot.get('display_name'),
+ snapshot.get('display_description'))
+ retval = _translate_snapshot_detail_view(context, new_snapshot)
return {'snapshot': retval}
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 cb3f7ad49..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)
@@ -1282,18 +1289,16 @@ class Controller(wsgi.Controller):
except exception.InstanceNotFound:
msg = _("Instance could not be found")
raise exc.HTTPNotFound(explanation=msg)
- 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.ImageNotFound:
msg = _("Cannot find image for rebuild")
raise exc.HTTPBadRequest(explanation=msg)
- except exception.InstanceTypeMemoryTooSmall as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
- except exception.InstanceTypeDiskTooSmall as error:
+ 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)
@@ -1360,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'])
@@ -1392,7 +1397,7 @@ class Controller(wsgi.Controller):
def _get_server_search_options(self):
"""Return server search options allowed by non-admin."""
return ('reservation_id', 'name', 'status', 'image', 'flavor',
- 'changes-since', 'all_tenants')
+ 'ip', 'changes-since', 'all_tenants')
def create_resource(ext_mgr):
@@ -1406,9 +1411,8 @@ def remove_invalid_options(context, search_options, allowed_search_options):
return
# Otherwise, strip out all unknown options
unknown_options = [opt for opt in search_options
- if opt not in allowed_search_options]
- unk_opt_str = ", ".join(unknown_options)
- log_msg = _("Removing options '%(unk_opt_str)s' from query") % locals()
- LOG.debug(log_msg)
+ 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)
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 dcf6149e5..6cbc5bb78 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -275,7 +275,8 @@ class ExtensionManager(object):
self.load_extension(ext_factory)
except Exception as exc:
LOG.warn(_('Failed to load extension %(ext_factory)s: '
- '%(exc)s') % locals())
+ '%(exc)s'),
+ {'ext_factory': ext_factory, 'exc': exc})
class ControllerExtension(object):
@@ -296,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:
@@ -308,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):
@@ -344,19 +346,18 @@ def load_standard_extensions(ext_mgr, logger, path, package, ext_list=None):
ext_mgr.load_extension(classpath)
except Exception as exc:
logger.warn(_('Failed to load extension %(classpath)s: '
- '%(exc)s') % locals())
+ '%(exc)s'),
+ {'classpath': classpath, 'exc': exc})
# Now, let's consider any subdirectories we may have...
subdirs = []
for dname in dirnames:
# Skip it if it does not have __init__.py
- if not os.path.exists(os.path.join(dirpath, dname,
- '__init__.py')):
+ if not os.path.exists(os.path.join(dirpath, dname, '__init__.py')):
continue
# If it has extension(), delegate...
- ext_name = ("%s%s.%s.extension" %
- (package, relpkg, dname))
+ ext_name = "%s%s.%s.extension" % (package, relpkg, dname)
try:
ext = importutils.import_class(ext_name)
except ImportError:
@@ -367,8 +368,9 @@ def load_standard_extensions(ext_mgr, logger, path, package, ext_list=None):
try:
ext(ext_mgr)
except Exception as exc:
- logger.warn(_('Failed to load extension %(ext_name)s: '
- '%(exc)s') % locals())
+ logger.warn(_('Failed to load extension %(ext_name)s:'
+ '%(exc)s'),
+ {'ext_name': ext_name, 'exc': exc})
# Update the list of directories we'll explore...
dirnames[:] = subdirs
@@ -409,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 03674d767..bf5627b3a 100644
--- a/nova/api/openstack/wsgi.py
+++ b/nova/api/openstack/wsgi.py
@@ -916,7 +916,10 @@ class Resource(wsgi.Application):
return Fault(webob.exc.HTTPBadRequest(explanation=msg))
if body:
- LOG.debug(_("Action: '%(action)s', body: %(body)s") % locals())
+ msg = _("Action: '%(action)s', body: "
+ "%(body)s") % {'action': action,
+ 'body': unicode(body, 'utf-8')}
+ LOG.debug(msg)
LOG.debug(_("Calling method %s") % meth)
# Now, deserialize the request body...
@@ -938,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
@@ -965,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)
@@ -981,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/api/openstack/xmlutil.py b/nova/api/openstack/xmlutil.py
index 9bcce808c..04f5e28e3 100644
--- a/nova/api/openstack/xmlutil.py
+++ b/nova/api/openstack/xmlutil.py
@@ -739,10 +739,9 @@ class MasterTemplate(Template):
# Make sure we have a tree match
if slave.root.tag != self.root.tag:
- slavetag = slave.root.tag
- mastertag = self.root.tag
- msg = _("Template tree mismatch; adding slave %(slavetag)s "
- "to master %(mastertag)s") % locals()
+ msg = _("Template tree mismatch; adding slave %(slavetag)s to "
+ "master %(mastertag)s") % {'slavetag': slave.root.tag,
+ 'mastertag': self.root.tag}
raise ValueError(msg)
# Make sure slave applies to this template
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 d13677f74..319067836 100644
--- a/nova/cells/messaging.py
+++ b/nova/cells/messaging.py
@@ -202,7 +202,7 @@ class _BaseMessage(object):
resp_value = sys.exc_info()
failure = True
LOG.exception(_("Error processing message locally: %(exc)s"),
- locals())
+ {'exc': exc})
return Response(self.routing_path, resp_value, failure)
def _setup_response_queue(self):
@@ -355,14 +355,18 @@ class _TargetedMessage(_BaseMessage):
next_hop_num = current_hops + 1
dest_hops = target_cell.count(_PATH_CELL_SEP)
if dest_hops < current_hops:
+ reason_args = {'target_cell': target_cell,
+ 'routing_path': routing_path}
reason = _("destination is %(target_cell)s but routing_path "
- "is %(routing_path)s") % locals()
+ "is %(routing_path)s") % reason_args
raise exception.CellRoutingInconsistency(reason=reason)
dest_name_parts = target_cell.split(_PATH_CELL_SEP)
if (_PATH_CELL_SEP.join(dest_name_parts[:next_hop_num]) !=
routing_path):
+ reason_args = {'target_cell': target_cell,
+ 'routing_path': routing_path}
reason = _("destination is %(target_cell)s but routing_path "
- "is %(routing_path)s") % locals()
+ "is %(routing_path)s") % reason_args
raise exception.CellRoutingInconsistency(reason=reason)
next_hop_name = dest_name_parts[next_hop_num]
if self.direction == 'up':
@@ -371,8 +375,10 @@ class _TargetedMessage(_BaseMessage):
next_hop = self.state_manager.get_child_cell(next_hop_name)
if not next_hop:
cell_type = 'parent' if self.direction == 'up' else 'child'
+ reason_args = {'cell_type': cell_type,
+ 'target_cell': target_cell}
reason = _("Unknown %(cell_type)s when routing to "
- "%(target_cell)s") % locals()
+ "%(target_cell)s") % reason_args
raise exception.CellRoutingInconsistency(reason=reason)
return next_hop
@@ -396,7 +402,7 @@ class _TargetedMessage(_BaseMessage):
except Exception as exc:
exc_info = sys.exc_info()
LOG.exception(_("Error locating next hop for message: %(exc)s"),
- locals())
+ {'exc': exc})
return self._send_response_from_exception(exc_info)
if next_hop.is_me:
@@ -424,7 +430,7 @@ class _TargetedMessage(_BaseMessage):
exc_info = sys.exc_info()
err_str = _("Failed to send message to cell: %(next_hop)s: "
"%(exc)s")
- LOG.exception(err_str, locals())
+ LOG.exception(err_str, {'exc': exc, 'next_hop': next_hop})
self._cleanup_response_queue()
return self._send_response_from_exception(exc_info)
@@ -502,7 +508,7 @@ class _BroadcastMessage(_BaseMessage):
except Exception as exc:
exc_info = sys.exc_info()
LOG.exception(_("Error locating next hops for message: %(exc)s"),
- locals())
+ {'exc': exc})
return self._send_response_from_exception(exc_info)
# Short circuit if we don't need to respond
@@ -522,7 +528,7 @@ class _BroadcastMessage(_BaseMessage):
# with the failure.
exc_info = sys.exc_info()
LOG.exception(_("Error sending message to next hops: %(exc)s"),
- locals())
+ {'exc': exc})
self._cleanup_response_queue()
return self._send_response_from_exception(exc_info)
@@ -541,7 +547,7 @@ class _BroadcastMessage(_BaseMessage):
exc_info = sys.exc_info()
err_str = _("Error waiting for responses from neighbor cells: "
"%(exc)s")
- LOG.exception(err_str, locals())
+ LOG.exception(err_str, {'exc': exc})
return self._send_response_from_exception(exc_info)
if local_response:
@@ -645,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']
@@ -652,7 +662,7 @@ class _TargetedMessageMethods(_BaseMessageMethods):
if not fn:
detail = _("Unknown method '%(method)s' in compute API")
raise exception.CellServiceAPIMethodNotFound(
- detail=detail % locals())
+ detail=detail % {'method': method})
args = list(method_info['method_args'])
# 1st arg is instance_uuid that we need to turn into the
# instance object.
@@ -674,7 +684,8 @@ class _TargetedMessageMethods(_BaseMessageMethods):
def update_capabilities(self, message, cell_name, capabilities):
"""A child cell told us about their capabilities."""
LOG.debug(_("Received capabilities from child cell "
- "%(cell_name)s: %(capabilities)s"), locals())
+ "%(cell_name)s: %(capabilities)s"),
+ {'cell_name': cell_name, 'capabilities': capabilities})
self.state_manager.update_cell_capabilities(cell_name,
capabilities)
# Go ahead and update our parents now that a child updated us
@@ -683,7 +694,8 @@ class _TargetedMessageMethods(_BaseMessageMethods):
def update_capacities(self, message, cell_name, capacities):
"""A child cell told us about their capacity."""
LOG.debug(_("Received capacities from child cell "
- "%(cell_name)s: %(capacities)s"), locals())
+ "%(cell_name)s: %(capacities)s"),
+ {'cell_name': cell_name, 'capacities': capacities})
self.state_manager.update_cell_capacities(cell_name,
capacities)
# Go ahead and update our parents now that a child updated us
@@ -808,8 +820,8 @@ class _BroadcastMessageMethods(_BaseMessageMethods):
for md in instance['system_metadata']])
instance['system_metadata'] = sys_metadata
- LOG.debug(_("Got update for instance %(instance_uuid)s: "
- "%(instance)s") % locals())
+ LOG.debug(_("Got update for instance: %(instance)s"),
+ {'instance': instance}, instance_uuid=instance_uuid)
# To attempt to address out-of-order messages, do some sanity
# checking on the VM state.
@@ -839,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.
@@ -851,8 +863,8 @@ class _BroadcastMessageMethods(_BaseMessageMethods):
if not self._at_the_top():
return
instance_uuid = instance['uuid']
- LOG.debug(_("Got update to delete instance %(instance_uuid)s") %
- locals())
+ LOG.debug(_("Got update to delete instance"),
+ instance_uuid=instance_uuid)
try:
self.db.instance_destroy(message.ctxt, instance_uuid,
update_cells=False)
@@ -867,7 +879,7 @@ class _BroadcastMessageMethods(_BaseMessageMethods):
soft-deleted. So, we'll run it everywhere.
"""
LOG.debug(_("Got broadcast to %(delete_type)s delete instance"),
- locals(), instance=instance)
+ {'delete_type': delete_type}, instance=instance)
if delete_type == 'soft':
self.compute_api.soft_delete(message.ctxt, instance)
else:
@@ -882,7 +894,7 @@ class _BroadcastMessageMethods(_BaseMessageMethods):
instance_fault.pop(key, None)
log_str = _("Got message to create instance fault: "
"%(instance_fault)s")
- LOG.debug(log_str, locals())
+ LOG.debug(log_str, {'instance_fault': instance_fault})
self.db.instance_fault_create(message.ctxt, instance_fault)
def bw_usage_update_at_top(self, message, bw_update_info, **kwargs):
@@ -902,7 +914,8 @@ class _BroadcastMessageMethods(_BaseMessageMethods):
projid_str = project_id is None and "<all>" or project_id
since_str = updated_since is None and "<all>" or updated_since
LOG.info(_("Forcing a sync of instances, project_id="
- "%(projid_str)s, updated_since=%(since_str)s"), locals())
+ "%(projid_str)s, updated_since=%(since_str)s"),
+ {'projid_str': projid_str, 'since_str': since_str})
if updated_since is not None:
updated_since = timeutils.parse_isotime(updated_since)
instances = cells_utils.get_instances_to_sync(message.ctxt,
@@ -1086,7 +1099,7 @@ class MessageRunner(object):
my_cell_info = self.state_manager.get_my_state()
capabs = self.state_manager.get_our_capabilities()
LOG.debug(_("Updating parents with our capabilities: %(capabs)s"),
- locals())
+ {'capabs': capabs})
# We have to turn the sets into lists so they can potentially
# be json encoded when the raw message is sent.
for key, values in capabs.items():
@@ -1106,7 +1119,7 @@ class MessageRunner(object):
my_cell_info = self.state_manager.get_my_state()
capacities = self.state_manager.get_our_capacities()
LOG.debug(_("Updating parents with our capacities: %(capacities)s"),
- locals())
+ {'capacities': capacities})
method_kwargs = {'cell_name': my_cell_info.name,
'capacities': capacities}
for cell in parent_cells:
@@ -1120,8 +1133,16 @@ class MessageRunner(object):
"""
method_kwargs = dict(host_sched_kwargs=host_sched_kwargs)
message = _TargetedMessage(self, ctxt, 'schedule_run_instance',
- method_kwargs, 'down',
- target_cell)
+ 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):
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 8ec65b2d0..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,65 +101,162 @@ 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"),
- locals())
-
- 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)
+ {'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 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
sleep_time = max(1, CONF.cells.scheduler_retry_delay)
LOG.info(_("No cells available when scheduling. Will "
- "retry in %(sleep_time)s second(s)"), locals())
+ "retry in %(sleep_time)s second(s)"),
+ {'sleep_time': sleep_time})
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"),
- locals())
+ {'instance_uuids': instance_uuids})
ctxt = message.ctxt
for instance_uuid in instance_uuids:
self.msg_runner.instance_update_at_top(ctxt,
diff --git a/nova/cells/state.py b/nova/cells/state.py
index 403f42d47..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."""
@@ -313,7 +314,8 @@ class CellStateManager(base.Base):
cell = self.parent_cells.get(cell_name)
if not cell:
LOG.error(_("Unknown cell '%(cell_name)s' when trying to "
- "update capabilities"), locals())
+ "update capabilities"),
+ {'cell_name': cell_name})
return
# Make sure capabilities are sets.
for capab_name, values in capabilities.items():
@@ -328,7 +330,8 @@ class CellStateManager(base.Base):
cell = self.parent_cells.get(cell_name)
if not cell:
LOG.error(_("Unknown cell '%(cell_name)s' when trying to "
- "update capacities"), locals())
+ "update capacities"),
+ {'cell_name': cell_name})
return
cell.update_capacities(capacities)
@@ -359,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/all.py b/nova/cmd/all.py
index f510069b6..517033d05 100644
--- a/nova/cmd/all.py
+++ b/nova/cmd/all.py
@@ -49,19 +49,19 @@ def main():
logging.setup("nova")
LOG = logging.getLogger('nova.all')
utils.monkey_patch()
- launcher = service.ProcessLauncher()
+ launcher = service.process_launcher()
# nova-api
for api in CONF.enabled_apis:
try:
server = service.WSGIService(api)
- launcher.launch_server(server, workers=server.workers or 1)
+ launcher.launch_service(server, workers=server.workers or 1)
except (Exception, SystemExit):
LOG.exception(_('Failed to load %s') % '%s-api' % api)
for mod in [s3server, xvp_proxy]:
try:
- launcher.launch_server(mod.get_wsgi_server())
+ launcher.launch_service(mod.get_wsgi_server())
except (Exception, SystemExit):
LOG.exception(_('Failed to load %s') % mod.__name__)
@@ -82,8 +82,8 @@ def main():
manager = None
try:
- launcher.launch_server(service.Service.create(binary=binary,
- topic=topic,
+ launcher.launch_service(service.Service.create(binary=binary,
+ topic=topic,
manager=manager))
except (Exception, SystemExit):
LOG.exception(_('Failed to load %s'), binary)
diff --git a/nova/cmd/api.py b/nova/cmd/api.py
index a7f6313b0..f838d988f 100644
--- a/nova/cmd/api.py
+++ b/nova/cmd/api.py
@@ -41,7 +41,7 @@ def main():
logging.setup("nova")
utils.monkey_patch()
- launcher = service.ProcessLauncher()
+ launcher = service.process_launcher()
for api in CONF.enabled_apis:
should_use_ssl = api in CONF.enabled_ssl_apis
if api == 'ec2':
@@ -49,5 +49,5 @@ def main():
max_url_len=16384)
else:
server = service.WSGIService(api, use_ssl=should_use_ssl)
- launcher.launch_server(server, workers=server.workers or 1)
+ launcher.launch_service(server, workers=server.workers or 1)
launcher.wait()
diff --git a/nova/cmd/baremetal_deploy_helper.py b/nova/cmd/baremetal_deploy_helper.py
index 765af8f31..d63d06ee9 100644
--- a/nova/cmd/baremetal_deploy_helper.py
+++ b/nova/cmd/baremetal_deploy_helper.py
@@ -201,7 +201,7 @@ 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:
+ except processutils.ProcessExecutionError as err:
# Log output if there was a error
LOG.error("Cmd : %s" % err.cmd)
LOG.error("StdOut : %s" % err.stdout)
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 8e005bcad..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'),
@@ -61,7 +39,13 @@ 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():
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 f47121c36..145a0ee27 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."""
@@ -476,34 +487,76 @@ class API(base.Base):
instance['uuid'], updates)
return instance
- 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_config_drive(self, context, config_drive):
+ try:
+ 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:
+ 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 _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'
@@ -526,110 +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)
-
- # Handle config_drive
- config_drive_id = None
- if config_drive and not utils.is_valid_boolstr(config_drive):
- # config_drive is volume id
- config_drive_id = config_drive
- config_drive = None
-
- # Ensure config_drive image exists
- cd_image_service, config_drive_id = \
- glance.get_remote_image_service(context, config_drive_id)
- cd_image_service.show(context, config_drive_id)
-
- 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(
@@ -638,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
@@ -650,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,
@@ -684,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)
- (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)
+ 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 = 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)
@@ -795,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.
@@ -832,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):
@@ -884,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:
@@ -1039,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']:
@@ -1166,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())
@@ -1262,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)
@@ -1299,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."""
@@ -1342,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."""
@@ -1399,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']
@@ -1582,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:
@@ -1616,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:
@@ -1678,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
@@ -1689,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']:
@@ -1732,7 +1810,7 @@ class API(base.Base):
method='reboot')
state = {'SOFT': task_states.REBOOTING,
'HARD': task_states.REBOOTING_HARD}[reboot_type]
- instance = self.update(context, instance, vm_state=vm_states.ACTIVE,
+ instance = self.update(context, instance,
task_state=state,
expected_task_state=[None,
task_states.REBOOTING])
@@ -1746,44 +1824,22 @@ class API(base.Base):
block_device_info=block_info,
reboot_type=reboot_type)
- def _get_image(self, context, image_href):
- """Throws an ImageNotFound exception if image_href does not exist."""
- (image_service, image_id) = glance.get_remote_image_service(context,
- image_href)
- return image_service.show(context, image_id)
-
@wrap_check_policy
@check_instance_lock
@check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.STOPPED],
task_state=[None])
def rebuild(self, context, instance, image_href, admin_password, **kwargs):
"""Rebuild the given instance with the provided attributes."""
-
- if instance['image_ref']:
- orig_image_ref = instance['image_ref']
- image = self._get_image(context, image_href)
- else:
- orig_image_ref = ''
- image = {}
-
+ 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)
- 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()
+ image_id, image = self._get_image(context, image_href)
+
+ self._checks_for_create_and_rebuild(context, image_id, image,
+ instance_type, metadata, files_to_inject)
- if image_href:
- (image_service, image_id) = glance.get_remote_image_service(
- context, image_href)
- image = image_service.show(context, image_id)
- else:
- image = {}
kernel_id, ramdisk_id = self._handle_kernel_and_ramdisk(
context, None, None, image)
@@ -1805,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
@@ -1829,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)
@@ -1944,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,
@@ -1957,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)
@@ -1979,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:
@@ -1987,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']
@@ -2009,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()
@@ -2101,7 +2163,6 @@ class API(base.Base):
"""Pause the given instance."""
self.update(context,
instance,
- vm_state=vm_states.ACTIVE,
task_state=task_states.PAUSING,
expected_task_state=None)
@@ -2116,7 +2177,6 @@ class API(base.Base):
"""Unpause the given instance."""
self.update(context,
instance,
- vm_state=vm_states.PAUSED,
task_state=task_states.UNPAUSING,
expected_task_state=None)
@@ -2136,7 +2196,6 @@ class API(base.Base):
"""Suspend the given instance."""
self.update(context,
instance,
- vm_state=vm_states.ACTIVE,
task_state=task_states.SUSPENDING,
expected_task_state=None)
@@ -2151,7 +2210,6 @@ class API(base.Base):
"""Resume the given instance."""
self.update(context,
instance,
- vm_state=vm_states.SUSPENDED,
task_state=task_states.RESUMING,
expected_task_state=None)
@@ -2165,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'])
@@ -2180,7 +2239,6 @@ class API(base.Base):
self.update(context,
instance,
- vm_state=vm_states.ACTIVE,
task_state=task_states.RESCUING,
expected_task_state=None)
@@ -2196,7 +2254,6 @@ class API(base.Base):
"""Unrescue the given instance."""
self.update(context,
instance,
- vm_state=vm_states.RESCUED,
task_state=task_states.UNRESCUING,
expected_task_state=None)
@@ -2461,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']) ==
@@ -2481,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])
@@ -2736,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:
@@ -2761,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,
@@ -2777,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()
@@ -2792,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
@@ -2799,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):
@@ -2905,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:
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 2958769e1..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()
@@ -123,10 +125,11 @@ def create(name, memory, vcpus, root_gb, ephemeral_gb=0, flavorid=None,
kwargs['flavorid'] = unicode(flavorid)
# ensure is_public attribute is boolean
- if not utils.is_valid_boolstr(is_public):
- msg = _("is_public must be a boolean")
- raise exception.InvalidInput(reason=msg)
- kwargs['is_public'] = strutils.bool_from_string(is_public)
+ try:
+ kwargs['is_public'] = strutils.bool_from_string(
+ is_public, strict=True)
+ except ValueError:
+ raise exception.InvalidInput(reason=_("is_public must be a boolean"))
try:
return db.instance_type_create(context.get_admin_context(), kwargs)
@@ -136,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)
@@ -145,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()
@@ -161,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_instance_type():
- """Get the default instance type."""
- name = CONF.default_instance_type
- return get_instance_type_by_name(name)
+def get_default_flavor():
+ """Get the default flavor."""
+ name = CONF.default_flavor
+ return get_flavor_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()
@@ -184,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()
@@ -197,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
"""
@@ -208,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:
@@ -254,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 02527913a..5c697993b 100755
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -393,15 +393,17 @@ class ComputeManager(manager.SchedulerDependentManager):
'trying to set it to ERROR'),
instance_uuid=instance_uuid)
- def _get_instances_on_driver(self, context):
+ def _get_instances_on_driver(self, context, filters=None):
"""Return a list of instance records that match the instances found
on the hypervisor.
"""
+ if not filters:
+ filters = {}
try:
driver_uuids = self.driver.list_instance_uuids()
+ filters['uuid'] = driver_uuids
local_instances = self.conductor_api.instance_get_all_by_filters(
- context, {'uuid': driver_uuids},
- columns_to_join=[])
+ 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 '
@@ -413,8 +415,8 @@ class ComputeManager(manager.SchedulerDependentManager):
# The driver doesn't support uuids listing, so we'll have
# to brute force.
driver_instances = self.driver.list_instances()
- instances = self.conductor_api.instance_get_all_by_host(
- context, self.host, columns_to_join=[])
+ instances = self.conductor_api.instance_get_all_by_filters(
+ context, filters, columns_to_join=[])
name_map = dict((instance['name'], instance) for instance in instances)
local_instances = []
for driver_instance in driver_instances:
@@ -436,11 +438,11 @@ class ComputeManager(manager.SchedulerDependentManager):
not, destroy them.
"""
our_host = self.host
- local_instances = self._get_instances_on_driver(context)
+ filters = {'deleted': False}
+ local_instances = self._get_instances_on_driver(context, filters)
for instance in local_instances:
instance_host = instance['host']
- instance_name = instance['name']
- if instance['host'] != our_host:
+ if instance_host != our_host:
LOG.info(_('Deleting instance as its host ('
'%(instance_host)s) is not equal to our '
'host (%(our_host)s).'),
@@ -521,10 +523,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)
@@ -887,7 +898,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,
@@ -942,6 +959,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:
@@ -949,6 +969,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.')
@@ -956,10 +980,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,
@@ -1082,63 +1109,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 = image_meta['size']
- except KeyError:
- # Size is not a required field in the image service (yet), so
- # we are unable to rely on it being there even though it's in
- # glance.
-
- # TODO(jk0): Should size be required in the image service?
- 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,
@@ -1151,29 +1121,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."""
@@ -1319,6 +1297,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()
@@ -1333,21 +1321,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
@@ -1381,6 +1376,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']
@@ -1434,6 +1430,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)
@@ -1814,7 +1819,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,
@@ -2125,15 +2130,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
@@ -2151,9 +2156,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)
@@ -2171,8 +2177,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)
@@ -2259,8 +2281,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:
@@ -2276,6 +2298,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'],
@@ -2295,9 +2322,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
@@ -2309,8 +2337,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")
@@ -2347,8 +2384,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)
@@ -2513,15 +2555,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,
@@ -2559,11 +2605,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')
@@ -3189,6 +3238,7 @@ class ComputeManager(manager.SchedulerDependentManager):
return self.driver.check_can_live_migrate_source(ctxt, instance,
dest_check_data)
+ @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
def pre_live_migration(self, context, instance,
block_migration=False, disk=None,
migrate_data=None):
@@ -3207,6 +3257,9 @@ class ComputeManager(manager.SchedulerDependentManager):
context, instance, bdms=bdms)
network_info = self._get_instance_nw_info(context, instance)
+ self._notify_about_instance_usage(
+ context, instance, "live_migration.pre.start",
+ network_info=network_info)
# TODO(tr3buchet): figure out how on the earth this is necessary
fixed_ips = network_info.fixed_ips()
@@ -3237,8 +3290,13 @@ class ComputeManager(manager.SchedulerDependentManager):
if block_migration:
self.driver.pre_block_migration(context, instance, disk)
+ self._notify_about_instance_usage(
+ context, instance, "live_migration.pre.end",
+ network_info=network_info)
+
return pre_live_migration_data
+ @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
def live_migration(self, context, dest, instance,
block_migration=False, migrate_data=None):
"""Executing live migration.
@@ -3355,6 +3413,7 @@ class ComputeManager(manager.SchedulerDependentManager):
"This error can be safely ignored."),
instance=instance_ref)
+ @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
def post_live_migration_at_destination(self, context, instance,
block_migration=False):
"""Post operations for live migration .
@@ -3380,6 +3439,9 @@ class ComputeManager(manager.SchedulerDependentManager):
migration)
network_info = self._get_instance_nw_info(context, instance)
+ self._notify_about_instance_usage(
+ context, instance, "live_migration.post.dest.start",
+ network_info=network_info)
block_device_info = self._get_instance_volume_block_device_info(
context, instance)
@@ -3403,6 +3465,9 @@ class ComputeManager(manager.SchedulerDependentManager):
# NOTE(vish): this is necessary to update dhcp
self.network_api.setup_networks_on_host(context, instance, self.host)
+ self._notify_about_instance_usage(
+ context, instance, "live_migration.post.dest.end",
+ network_info=network_info)
def _rollback_live_migration(self, context, instance,
dest, block_migration, migrate_data=None):
@@ -3446,6 +3511,7 @@ class ComputeManager(manager.SchedulerDependentManager):
self.compute_rpcapi.rollback_live_migration_at_destination(context,
instance, dest)
+ @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
def rollback_live_migration_at_destination(self, context, instance):
"""Cleaning up image directory that is created pre_live_migration.
@@ -3453,6 +3519,9 @@ class ComputeManager(manager.SchedulerDependentManager):
:param instance: an Instance dict sent over rpc
"""
network_info = self._get_instance_nw_info(context, instance)
+ self._notify_about_instance_usage(
+ context, instance, "live_migration.rollback.dest.start",
+ network_info=network_info)
# NOTE(tr3buchet): tear down networks on destination host
self.network_api.setup_networks_on_host(context, instance,
@@ -3464,6 +3533,9 @@ class ComputeManager(manager.SchedulerDependentManager):
context, instance)
self.driver.destroy(instance, self._legacy_nw_info(network_info),
block_device_info)
+ self._notify_about_instance_usage(
+ context, instance, "live_migration.rollback.dest.end",
+ network_info=network_info)
@periodic_task.periodic_task
def _heal_instance_info_cache(self, context):
@@ -3521,21 +3593,26 @@ class ComputeManager(manager.SchedulerDependentManager):
@periodic_task.periodic_task
def _poll_rebooting_instances(self, context):
if CONF.reboot_timeout > 0:
- instances = self.conductor_api.instance_get_all_hung_in_rebooting(
- context, CONF.reboot_timeout)
- self.driver.poll_rebooting_instances(CONF.reboot_timeout,
- instances)
+ filters = {'task_state': task_states.REBOOTING,
+ 'host': self.host}
+ rebooting = self.conductor_api.instance_get_all_by_filters(
+ context, filters, columns_to_join=[])
+
+ to_poll = []
+ for instance in rebooting:
+ if timeutils.is_older_than(instance['updated_at'],
+ CONF.reboot_timeout):
+ to_poll.append(instance)
+
+ self.driver.poll_rebooting_instances(CONF.reboot_timeout, to_poll)
@periodic_task.periodic_task
def _poll_rescued_instances(self, context):
if CONF.rescue_timeout > 0:
- instances = self.conductor_api.instance_get_all_by_host(
- context, self.host, columns_to_join=[])
-
- rescued_instances = []
- for instance in instances:
- if instance['vm_state'] == vm_states.RESCUED:
- rescued_instances.append(instance)
+ filters = {'vm_state': vm_states.RESCUED,
+ 'host': self.host}
+ rescued_instances = self.conductor_api.instance_get_all_by_filters(
+ context, filters, columns_to_join=[])
to_unrescue = []
for instance in rescued_instances:
@@ -3745,19 +3822,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:
@@ -3786,8 +3850,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()
@@ -3971,23 +4033,15 @@ class ComputeManager(manager.SchedulerDependentManager):
LOG.debug(_("CONF.reclaim_instance_interval <= 0, skipping..."))
return
- instances = self.conductor_api.instance_get_all_by_host(
- context, self.host, columns_to_join=[])
+ filters = {'vm_state': vm_states.SOFT_DELETED,
+ 'host': self.host}
+ instances = self.conductor_api.instance_get_all_by_filters(context,
+ filters)
for instance in instances:
- old_enough = (not instance['deleted_at'] or
- timeutils.is_older_than(instance['deleted_at'],
- interval))
- soft_deleted = instance['vm_state'] == vm_states.SOFT_DELETED
-
- if soft_deleted and old_enough:
+ if self._deleted_old_enough(instance, interval):
capi = self.conductor_api
bdms = capi.block_device_mapping_get_all_by_instance(
context, instance)
- # NOTE(danms): We fetched instances above without the
- # system_metadata for efficiency. If we get here, we need
- # to re-fetch with it so that _delete_instace() can extract
- # instance_type information.
- instance = capi.instance_get_by_uuid(context, instance['uuid'])
LOG.info(_('Reclaiming deleted instance'), instance=instance)
# NOTE(comstud): Quotas were already accounted for when
# the instance was soft deleted, so there's no need to
@@ -4090,32 +4144,30 @@ class ComputeManager(manager.SchedulerDependentManager):
but the hypervisor thinks is still running.
"""
timeout = CONF.running_deleted_instance_timeout
+ filters = {'deleted': True,
+ 'soft_deleted': False,
+ 'host': self.host}
+ instances = self._get_instances_on_driver(context, filters)
+ return [i for i in instances if self._deleted_old_enough(i, timeout)]
- def deleted_instance(instance):
- erroneously_running = instance['deleted']
- old_enough = (not instance['deleted_at'] or
- timeutils.is_older_than(instance['deleted_at'],
- timeout))
- if erroneously_running and old_enough:
- return True
- return False
-
- instances = self._get_instances_on_driver(context)
- return [i for i in instances if deleted_instance(i)]
+ def _deleted_old_enough(self, instance, timeout):
+ return (not instance['deleted_at'] or
+ timeutils.is_older_than(instance['deleted_at'], timeout))
@contextlib.contextmanager
def _error_out_instance_on_exception(self, context, instance_uuid,
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')
@@ -4168,8 +4220,6 @@ class ComputeManager(manager.SchedulerDependentManager):
if CONF.image_cache_manager_interval == 0:
return
- all_instances = self.conductor_api.instance_get_all(context)
-
# Determine what other nodes use this storage
storage_users.register_storage_use(CONF.instances_path, CONF.host)
nodes = storage_users.get_storage_users(CONF.instances_path)
@@ -4179,9 +4229,10 @@ class ComputeManager(manager.SchedulerDependentManager):
# TODO(mikal): this should be further refactored so that the cache
# cleanup code doesn't know what those instances are, just a remote
# count, and then this logic should be pushed up the stack.
- filtered_instances = []
- for instance in all_instances:
- if instance['host'] in nodes:
- filtered_instances.append(instance)
+ filters = {'deleted': False,
+ 'soft_deleted': True,
+ 'host': nodes}
+ filtered_instances = self.conductor_api.instance_get_all_by_filters(
+ context, filters, columns_to_join=[])
self.driver.manage_image_cache(context, filtered_instances)
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 e8fcc2c2c..74b8ce700 100644
--- a/nova/conductor/api.py
+++ b/nova/conductor/api.py
@@ -72,9 +72,6 @@ class LocalAPI(object):
def instance_destroy(self, context, instance):
return self._manager.instance_destroy(context, instance)
- def instance_get_all(self, context):
- return self._manager.instance_get_all(context)
-
def instance_get_all_by_host(self, context, host, columns_to_join=None):
return self._manager.instance_get_all_by_host(
context, host, columns_to_join=columns_to_join)
@@ -92,10 +89,6 @@ class LocalAPI(object):
sort_dir,
columns_to_join)
- def instance_get_all_hung_in_rebooting(self, context, timeout):
- return self._manager.instance_get_all_hung_in_rebooting(context,
- timeout)
-
def instance_get_active_by_window_joined(self, context, begin, end=None,
project_id=None, host=None):
return self._manager.instance_get_active_by_window_joined(
@@ -203,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)
@@ -344,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):
@@ -383,300 +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(self, context):
- return self.conductor_rpcapi.instance_get_all(context)
-
- 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_all_hung_in_rebooting(self, context, timeout):
- return self.conductor_rpcapi.instance_get_all_hung_in_rebooting(
- context, timeout)
-
- 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 fad849043..6eccaf341 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
@@ -111,6 +135,7 @@ class ConductorManager(manager.Manager):
self.db.instance_get_by_uuid(context, instance_uuid,
columns_to_join))
+ # NOTE(hanlind): This method can be removed in v2.0 of the RPC API.
def instance_get_all(self, context):
return jsonutils.to_primitive(self.db.instance_get_all(context))
@@ -240,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,
@@ -269,6 +297,7 @@ class ConductorManager(manager.Manager):
columns_to_join=columns_to_join)
return jsonutils.to_primitive(result)
+ # NOTE(hanlind): This method can be removed in v2.0 of the RPC API.
def instance_get_all_hung_in_rebooting(self, context, timeout):
result = self.db.instance_get_all_hung_in_rebooting(context, timeout)
return jsonutils.to_primitive(result)
@@ -304,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)
@@ -311,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)
@@ -440,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 e86a0acaa..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,
@@ -251,11 +257,6 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
sort_dir=sort_dir, columns_to_join=columns_to_join)
return self.call(context, msg, version='1.47')
- def instance_get_all_hung_in_rebooting(self, context, timeout):
- msg = self.make_msg('instance_get_all_hung_in_rebooting',
- timeout=timeout)
- return self.call(context, msg, version='1.15')
-
def instance_get_active_by_window_joined(self, context, begin, end=None,
project_id=None, host=None):
msg = self.make_msg('instance_get_active_by_window_joined',
@@ -299,10 +300,6 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
binary=binary)
return self.call(context, msg, version='1.28')
- def instance_get_all(self, context):
- msg = self.make_msg('instance_get_all')
- return self.call(context, msg, version='1.23')
-
def instance_get_all_by_host(self, context, host, node=None,
columns_to_join=None):
msg = self.make_msg('instance_get_all_by_host', host=host, node=node,
@@ -449,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 d294ee1d7..7ecf6dfc0 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):
@@ -654,6 +654,7 @@ def instance_floating_address_get_all(context, instance_uuid):
return IMPL.instance_floating_address_get_all(context, instance_uuid)
+# NOTE(hanlind): This method can be removed as conductor RPC API moves to v2.0.
def instance_get_all_hung_in_rebooting(context, reboot_window):
"""Get all instances stuck in a rebooting state."""
return IMPL.instance_get_all_hung_in_rebooting(context, reboot_window)
@@ -707,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)
+
+
###################
@@ -718,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):
@@ -911,6 +993,11 @@ def quota_class_get(context, class_name, resource):
return IMPL.quota_class_get(context, class_name, resource)
+def quota_class_get_default(context):
+ """Retrieve all default quotas."""
+ return IMPL.quota_class_get_default(context)
+
+
def quota_class_get_all_by_name(context, class_name):
"""Retrieve all quotas associated with a given quota class."""
return IMPL.quota_class_get_all_by_name(context, class_name)
@@ -1016,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):
@@ -1100,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.
@@ -1467,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 a35e8154d..d27f4e695 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -81,6 +81,7 @@ get_session = db_session.get_session
_SHADOW_TABLE_PREFIX = 'shadow_'
+_DEFAULT_QUOTA_NAME = 'default'
def get_backend():
@@ -95,6 +96,7 @@ def require_admin_context(f):
"""
+ @functools.wraps(f)
def wrapper(*args, **kwargs):
nova.context.require_admin_context(args[0])
return f(*args, **kwargs)
@@ -112,6 +114,7 @@ def require_context(f):
"""
+ @functools.wraps(f)
def wrapper(*args, **kwargs):
nova.context.require_context(args[0])
return f(*args, **kwargs)
@@ -516,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()
@@ -645,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
@@ -862,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.
@@ -1067,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
@@ -1129,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()
@@ -1140,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
@@ -1250,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
@@ -1312,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
@@ -1506,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
@@ -1635,7 +1661,37 @@ def instance_get_all_by_filters(context, filters, sort_key, sort_dir,
session=None):
"""Return instances that match all filters. Deleted instances
will be returned by default, unless there's a filter that says
- otherwise"""
+ otherwise.
+
+ Depending on the name of a filter, matching for that filter is
+ performed using either exact matching or as regular expression
+ matching. Exact matching is applied for the following filters:
+
+ ['project_id', 'user_id', 'image_ref',
+ 'vm_state', 'instance_type_id', 'uuid',
+ 'metadata', 'host']
+
+
+ A third type of filter (also using exact matching), filters
+ based on instance metadata tags when supplied under a special
+ key named 'filter'.
+
+ filters = {
+ 'filter': [
+ {'name': 'tag-key', 'value': '<metakey>'},
+ {'name': 'tag-value', 'value': '<metaval>'},
+ {'name': 'tag:<metakey>', 'value': '<metaval>'}
+ ]
+ }
+
+ Special keys are used to tweek the query further:
+
+ 'changes-since' - only return instances updated after
+ 'deleted' - only return (or exclude) deleted instances
+ 'soft-deleted' - modify behavior of 'deleted' to either
+ include or exclude instances whose
+ vm_state is SOFT_DELETED.
+ """
sort_fn = {'desc': desc, 'asc': asc}
@@ -1668,12 +1724,21 @@ 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'):
- deleted = or_(models.Instance.deleted == models.Instance.id,
- models.Instance.vm_state == vm_states.SOFT_DELETED)
- query_prefix = query_prefix.filter(deleted)
+ 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).\
+ filter_by(deleted=0)
+ if not filters.pop('soft_deleted', False):
+ query_prefix = query_prefix.\
filter(models.Instance.vm_state != vm_states.SOFT_DELETED)
if not context.is_admin:
@@ -1687,7 +1752,7 @@ def instance_get_all_by_filters(context, filters, sort_key, sort_dir,
# For other filters that don't match this, we will do regexp matching
exact_match_filter_names = ['project_id', 'user_id', 'image_ref',
'vm_state', 'instance_type_id', 'uuid',
- 'metadata']
+ 'metadata', 'host']
# Filter the query
query_prefix = exact_filter(query_prefix, models.Instance,
@@ -1933,6 +1998,7 @@ def instance_floating_address_get_all(context, instance_uuid):
return [floating_ip.address for floating_ip in floating_ips]
+# NOTE(hanlind): This method can be removed as conductor RPC API moves to v2.0.
@require_admin_context
def instance_get_all_hung_in_rebooting(context, reboot_window):
reboot_window = (timeutils.utcnow() -
@@ -2576,6 +2642,18 @@ def quota_class_get(context, class_name, resource):
return result
+def quota_class_get_default(context):
+ rows = model_query(context, models.QuotaClass, read_deleted="no").\
+ filter_by(class_name=_DEFAULT_QUOTA_NAME).\
+ all()
+
+ result = {'class_name': _DEFAULT_QUOTA_NAME}
+ for row in rows:
+ result[row.resource] = row.hard_limit
+
+ return result
+
+
@require_context
def quota_class_get_all_by_name(context, class_name):
nova.context.authorize_quota_class_context(context, class_name)
@@ -2798,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
@@ -2821,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)
@@ -2843,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():
@@ -3044,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():
@@ -3070,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
@@ -3258,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:
@@ -3673,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)
@@ -4209,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)
####################
@@ -4388,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()
@@ -4412,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
+
####################
@@ -4446,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
@@ -5085,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/133_folsom.py b/nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py
index 1b688a883..a24cabb2f 100644
--- a/nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py
+++ b/nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py
@@ -38,7 +38,7 @@ def MediumText():
def _populate_instance_types(instance_types_table):
default_inst_types = {
- 'm1.tiny': dict(mem=512, vcpus=1, root_gb=0, eph_gb=0, flavid=1),
+ 'm1.tiny': dict(mem=512, vcpus=1, root_gb=1, eph_gb=0, flavid=1),
'm1.small': dict(mem=2048, vcpus=1, root_gb=20, eph_gb=0, flavid=2),
'm1.medium': dict(mem=4096, vcpus=2, root_gb=40, eph_gb=0, flavid=3),
'm1.large': dict(mem=8192, vcpus=4, root_gb=80, eph_gb=0, flavid=4),
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/models.py b/nova/db/sqlalchemy/models.py
index f10bc8c32..28fe36a0d 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -45,10 +45,12 @@ 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)
@@ -246,6 +248,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 +268,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 +446,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 +463,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 +574,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 +616,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 +656,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 +701,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 +793,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 +1024,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 +1039,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/__init__.py b/nova/hacking/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/nova/hacking/__init__.py
diff --git a/nova/hacking/checks.py b/nova/hacking/checks.py
new file mode 100644
index 000000000..89ad7c554
--- /dev/null
+++ b/nova/hacking/checks.py
@@ -0,0 +1,55 @@
+# Copyright (c) 2012, Cloudscaling
+# 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.
+
+
+def import_no_db_in_virt(logical_line, filename):
+ """Check for db calls from nova/virt
+
+ As of grizzly-2 all the database calls have been removed from
+ nova/virt, and we want to keep it that way.
+
+ N307
+ """
+ if "nova/virt" in filename and not filename.endswith("fake.py"):
+ if logical_line.startswith("from nova import db"):
+ 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
new file mode 100644
index 000000000..ea2b70944
--- /dev/null
+++ b/nova/locale/bg_BG/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# English (United States) translations for nova.
+# Copyright (C) 2012 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-10 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) "
+"(http://www.transifex.com/projects/p/openstack/language/bg_BG/)\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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/bs/LC_MESSAGES/nova.po b/nova/locale/bs/LC_MESSAGES/nova.po
index 3d2bc7e26..76df49b01 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -938,9 +938,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1008,510 +1008,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1596,130 +1549,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,69 +1677,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1800,7 +1754,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1810,7 +1764,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1842,137 +1796,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2012,46 +1966,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2059,63 +2053,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2125,21 +2120,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 ""
@@ -2150,6 +2149,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 ""
@@ -2169,14 +2169,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2219,13 +2219,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2234,20 +2234,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2260,12 +2263,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2273,17 +2276,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2319,10 +2322,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 ""
@@ -2348,220 +2353,293 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2648,7 +2726,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2668,17 +2746,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2730,28 +2808,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 ""
@@ -2830,27 +2913,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2898,7 +2981,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2946,7 +3029,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2979,29 +3062,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3026,11 +3109,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 ""
@@ -3141,16 +3219,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 ""
@@ -3160,7 +3238,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3177,16 +3255,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3198,11 +3276,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 ""
@@ -3220,174 +3298,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3409,7 +3548,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3429,270 +3568,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3772,242 +3911,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4041,714 +4196,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4858,18 +5013,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4947,54 +5102,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5011,56 +5182,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5096,32 +5271,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 ""
@@ -5140,15 +5320,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 ""
@@ -5262,103 +5446,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5453,38 +5637,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5519,79 +5703,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5601,65 +5784,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5671,32 +5859,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5706,17 +5913,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 ""
@@ -5789,21 +5996,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5932,63 +6219,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6017,44 +6309,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 ""
@@ -6296,7 +6588,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6305,36 +6597,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6406,10 +6710,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
@@ -6417,6 +6728,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"
@@ -6452,14 +6768,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 ""
@@ -6529,46 +6845,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 ""
@@ -6621,79 +6937,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6706,61 +6985,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6770,22 +7059,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"
@@ -6847,35 +7136,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -6995,19 +7321,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7175,15 +7501,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7241,97 +7567,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7665,7 +7991,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7679,24 +8005,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7837,50 +8163,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 ""
@@ -8017,12 +8343,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8180,7 +8506,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8214,235 +8540,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8450,73 +8776,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8524,50 +8850,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8577,67 +8903,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8670,153 +8996,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8835,7 +9161,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. "
@@ -8843,17 +9169,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 ""
@@ -8929,12 +9255,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8946,70 +9272,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9033,83 +9359,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9132,7 +9458,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 ""
@@ -9200,74 +9526,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9283,27 +9609,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 ""
@@ -9369,18 +9695,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 ""
@@ -9713,54 +10039,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9881,107 +10207,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -9997,24 +10327,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10151,374 +10481,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10526,55 +10849,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10584,197 +10914,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10854,7 +11193,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 "
@@ -10862,7 +11201,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 ""
@@ -10902,16 +11241,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..8297ada71
--- /dev/null
+++ b/nova/locale/ca/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/cs/LC_MESSAGES/nova.po b/nova/locale/cs/LC_MESSAGES/nova.po
index 318b5a055..48cf92056 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -88,7 +88,7 @@ msgstr "Cesta příznaků: %s"
msgid "An unknown exception occurred."
msgstr "Vyskytla se neoÄekávaná výjimka."
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -173,8 +173,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Data páru klíÄů jsou neplatná"
@@ -190,8 +189,9 @@ msgstr "Obdržen neplatný vstup"
msgid "Invalid volume"
msgstr "Neplatný svazek"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr "Neplatná metadata"
@@ -205,7 +205,7 @@ msgstr "Neplatný klÃ­Ä metadata"
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Neplatný protokol IP %(protocol)s."
@@ -975,9 +975,9 @@ msgstr "Střídání není povoleno pro snímky"
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:898 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
@@ -1047,286 +1047,319 @@ 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
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:961
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:965
#, 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:969
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:973
#, 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:977
msgid "Quota exceeded"
msgstr "Kvóta pÅ™ekroÄena"
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "Vybrán maximální poÄet hostitelů (%d)"
-#: nova/exception.py:997
+#: nova/exception.py:993
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Vybrán maximální poÄet hostitelů (%d)"
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, 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:1001
msgid "Personality file limit exceeded"
msgstr "PÅ™ekroÄen limit osobnostního souboru"
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr "Cesta osobnostního souboru je příliš dlouhá"
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr "Obsah osobnostního souboru je příliš dlouhý"
-#: nova/exception.py:1017
+#: nova/exception.py:1013 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:1017
#, 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:1021
#, 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:1026
#, 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:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "Agregát %(aggregate_name)s již existuje."
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, 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:1038
#, 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:1043
#, 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:1047
msgid "Unable to create instance type"
msgstr "Nelze vytvořit typ instance"
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, 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:1057
#, 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:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, 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:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, 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:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, 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:1107
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "Instance %(instance_id)s nenalezena"
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, 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:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, 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:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, 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:1161
+#: nova/exception.py:1162
#, 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:1165
+#: nova/exception.py:1166
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "set_admin_password není tímto ovladaÄem zavedeno"
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, 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:1197
+#: nova/exception.py:1198
#, 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:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "Instance typu %(name)s již existuje."
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "OÄekáván objekt typu: %s"
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1337,7 +1370,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 ..."
@@ -1358,206 +1391,125 @@ 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Spouštění příkazu (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr "Prostředí není podporováno přes SSH"
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr "process_input není podporován přes SSH"
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Výsledek byl %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "ladění ve zpětném volání: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Adresa místního spojení nenalezena.: %s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "Neplatná podpůrná vrstva: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "Neznámý základní soubor: %s"
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr "OÄekáván objekt typu: %s"
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr "Neplatný server_string: %s"
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc: '%(name)s' trvalo %(total_time).2f sek"
-#: nova/utils.py:876
+#: nova/utils.py:800
#, fuzzy, python-format
msgid "Reloading cached file %s"
msgstr "Odstraňování základního souboru: %s"
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, fuzzy, python-format
msgid "Could not remove tmpdir: %s"
msgstr "Nelze odstranit kontejner: %s"
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "Název serveru není řetězec nebo unicode"
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, 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:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1642,7 +1594,7 @@ msgstr "ObalovaÄchyb: %s"
msgid "Too many failed authentications."
msgstr "Příliš mnoho ověření selhalo."
-#: nova/api/ec2/__init__.py:184
+#: nova/api/ec2/__init__.py:183
#, python-format
msgid ""
"Access key %(access_key)s has had %(failures)d failed authentications and"
@@ -1651,124 +1603,119 @@ msgstr ""
"Přístupový klÃ­Ä %(access_key)s %(failures)d krát selhal pÅ™i ověření a "
"bude zablokován na %(lock_mins)d minut."
-#: nova/api/ec2/__init__.py:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr "Podpis není zadán"
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr "Přístupový klÃ­Ä není zadán"
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr "Chyba při komunikaci s keystone"
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Přesun před spuštěním selhal na %(dest)s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Příliš mnoho ověření selhalo."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "Äinnost: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr "arg: %(key)s\t\thod: %(value)s"
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr "NeoprávnÄ›ní požadavek pro ovladaÄ=%(controller)s a Äinnost=%(action)s"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr "Vyvoláno InstanceNenalezena: %s"
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr "Vyvoláno SvazekNenalezen: %s"
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr "Vyvoláno SnímekNenalzen: %s"
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "Vyvoláno Nenalezeno: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr "Vyvoláno ChybaApiEC2: %s"
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr "Vyvoláno DvojiceKlíÄůExistuje: %s"
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, fuzzy, python-format
msgid "InvalidKeypair raised: %s"
msgstr "Vyvoláno NeplatnáOperace: %s"
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr "Vyvoláno NeplatnáHodnotaParametru: %s"
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr "Vyvoláno NeplatnýROzsahPortů: %s"
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr "Vyvoláno NeníOprávněno: %s"
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr "Vyvoláno NeplatnáOperace: %s"
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, fuzzy, python-format
msgid "QuotaError raised: %s"
msgstr "Vyvolána neznámá chyba: %s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "Vyvolána neznámá chyba: %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr "Prostředí: %s"
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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 "Vyskytla se neznámá chyba. Prosím zopakujte Váš požadavek."
-#: nova/api/ec2/apirequest.py:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1780,70 +1727,76 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr "Vytvořit snímek svazku %s"
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, fuzzy, python-format
msgid "Could not find key pair(s): %s"
msgstr "Nelze deÅ¡ifrovat soukromý klíÄ: %s"
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "VytvoÅ™it dvojici klíÄů %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr "Imprtovat klÃ­Ä %s"
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Smazat dvojici klíÄů %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, fuzzy, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr "Není dostatek parametrů k sestavení platného pravidla."
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Neplatný protokol IP %(protocol)s."
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
msgid "No rule for the specified parameters."
msgstr "Pro zadané parametry není žádné pravidlo."
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "Toto pravidlo již existuje ve skupině %s"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Získat výstup konzole pro instanci %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr "Vytvořit svazek ze snímku %s"
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Vytvořit svazek o %s GB"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
#, fuzzy
msgid "Delete Failed"
msgstr "Vytvoření selhalo"
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr "Připojit svazek %(volume_id)s k instanci %(instance_id)s na %(device)s"
@@ -1853,7 +1806,7 @@ msgstr "Připojit svazek %(volume_id)s k instanci %(instance_id)s na %(device)s"
msgid "Attach Failed."
msgstr "Vytvoření selhalo"
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Odpojit svazek %s"
@@ -1864,7 +1817,7 @@ 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:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "vlastnost není podporována: %s"
@@ -1898,145 +1851,145 @@ msgstr "Nelze najít adresu %r"
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:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Nelze najít adresu %r"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
#, fuzzy
msgid "Floating ip is already associated."
msgstr "Plovoucí ip %(address)s je přidružena."
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
#, fuzzy
msgid "l3driver call to add floating ip failed."
msgstr "Je dostupných nula plovoucích ip."
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Nelze najít adresu %r"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Oddělit adresu %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
#, fuzzy
msgid "Floating ip is not associated."
msgstr "Plovoucí ip %(address)s není přidružena."
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr "Obraz musí být dostupný"
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "BUde spuÅ¡tÄ›no ukonÄování insatncí"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Restratovat instanci %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr "Instance budou zastaveny"
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr "Instance budou spuštěny"
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "Zrušení registrace obrazu %s"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "uživatel nebo skupina nebyly zadány"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "podporována je pouze skupina \"all\""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "operation_type musí být add nebo remove"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "Aktualizace publicity obrazu %s"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "Nelze zastavit instanci za %d sek"
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
#, fuzzy
msgid "Expecting a list of resources"
msgstr "Získávání seznamu instancí"
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "instance - %s není přítomno"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "Získávání seznamu instancí"
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
#, fuzzy
msgid "Invalid CIDR"
msgstr "Neplatná data jednotky"
@@ -2078,47 +2031,87 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
#, fuzzy
msgid "Invalid proxy request signature."
msgstr "Neplatný požadavek: %s"
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: 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:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2126,64 +2119,65 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
msgid "limit param must be an integer"
msgstr "parametr limit musí být celé Äíslo"
-#: nova/api/openstack/common.py:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr "parametr limit musí být kladný"
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr "parametr offset musí být celé Äíslo"
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr "parametr offset musí být kladný"
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr "znaÄka [%s] nenalezena"
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr "href %s neobsahuje verzi"
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr "Metadata obrazu pÅ™ekraÄují limit"
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
#, fuzzy
msgid "Invalid image metadata"
msgstr "Neplatná metadata"
-#: nova/api/openstack/common.py:361
+#: nova/api/openstack/common.py:362
#, python-format
msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
msgstr "Nelze '%(action)s' zatímco instance je %(attr)s %(state)s"
-#: nova/api/openstack/common.py:364
-#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+#: nova/api/openstack/common.py:366
+#, fuzzy, python-format
+msgid "Instance is in an invalid state for '%s'"
msgstr "Instance je v neplatném stavu pro '%(action)s'"
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr "Odmítnutí žádosti o snímek, snímky jsou nyní zakázány"
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr "Snímky instance nejsou v souÄasnosti povoleny."
@@ -2193,21 +2187,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"
@@ -2218,6 +2216,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"
@@ -2237,14 +2236,14 @@ 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:346
+#: 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
-#, python-format
-msgid "Failed to load extension %(ext_name)s: %(exc)s"
+#: 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"
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2287,13 +2286,13 @@ 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:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr "Poškozené tělo požadavku"
@@ -2302,20 +2301,23 @@ msgstr "Poškozené tělo požadavku"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: 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:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Nepodporovaný Content-Type"
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2328,14 +2330,14 @@ msgstr "prvek není podřazený"
msgid "root element selecting a list"
msgstr "kořenový prvek volí seznam"
-#: nova/api/openstack/xmlutil.py:744
+#: nova/api/openstack/xmlutil.py:742
#, python-format
msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
msgstr ""
"Neshoda stromu šablony; přidávání sluhy %(slavetag)s k pánovi "
"%(mastertag)s"
-#: nova/api/openstack/xmlutil.py:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr "podtřídy musí zavádět construct()!"
@@ -2343,17 +2345,17 @@ msgstr "podtřídy musí zavádět construct()!"
msgid "Initializing extension manager."
msgstr "Zavádění správce rozšíření."
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Neplatný podpis pro uživatele %s"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Neplatný podpis pro uživatele %s"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2389,10 +2391,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Ä›"
@@ -2420,230 +2424,305 @@ msgstr "Server neexistuje"
msgid "Metadata item was not found"
msgstr "Položka metadat nenalezena"
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr "Neplatná hodnota changes-since"
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Pokus o jemné smazání %s"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Hostitel %(host)s nemohl být nalezen."
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr "Instance nemohla být nalezena"
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr "Špatný formát osobnosti: chybí %s"
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr "Špatný formát osobnosti"
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, 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:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
#, fuzzy
msgid "Unknown argment : port"
msgstr "neznámá chyby připojení hosta"
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, 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:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, 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:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "Neplatná pevná IP adresa (%s)"
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Duplicitní sítě (%s) nejosu povoleny"
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr "Špatný formát sítě: chybí %s"
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr "Špatný formát sítě"
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
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:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr "accessIPv4 není ve správném formátu IPv4"
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
#, fuzzy
msgid "accessIPv6 is not proper IPv6 format"
msgstr "accessIPv4 není ve správném formátu IPv4"
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr "Název serveru není urÄen"
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr "Zadáno neplatné flavorRef."
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
#, fuzzy
msgid "min_count must be an integer value"
msgstr "parametr limit musí být celé Äíslo"
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
#, fuzzy
msgid "max_count must be an integer value"
msgstr "parametr limit musí být celé Äíslo"
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr "Nelze najít požadovaný obraz"
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr "Zadán neplatný název_klíÄe."
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "id nemůže být None"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "id nemůže být None"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr "Instanci nebyla změněna velikost."
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, 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:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
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:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr "Chybí argument 'type' pro restart"
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr "Nelze najít požadovanou konfiguraci."
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
#, fuzzy
msgid "Resize requires a flavor change."
msgstr "Resize vyžaduje změnu velikosti."
-#: nova/api/openstack/compute/servers.py:1118
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, 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:1216
msgid "Missing imageRef attribute"
msgstr "Chybí vlastnost imageRef"
-#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr "Zadáno neplatné imageRef."
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr "Chybí vlastnost flavorRef"
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr "Nebylo zadáno adminPass"
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr "Neplatné adminPass"
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Nelze restartovat instanci"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr "Nelze zpracovat metadata dvojic hodnot/klíÄů."
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "Požadavek na změnu velikosti má neplatnou vlastnost 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr "Požadavek na změnu velikosti vyžaduje vlastnost 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr "Neplatné tělo požadavku"
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr "Nelze zpracovat imageRef z požadavku."
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr "Nelze najít obraz ke znovu sestavení"
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr "Objekt createImage cyžaduje vlastnost name"
-#: nova/api/openstack/compute/servers.py:1409
-#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, fuzzy, python-format
+msgid "Removing options '%s' from query"
msgstr "Odstraňování voleb '%(unk_opt_str)s' z fronty"
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2731,7 +2810,7 @@ msgstr "host a block_migration musí být zadány."
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, fuzzy, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr "Migrace za chodu instance %(id)s na hostitele %(host)s selhala"
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2750,19 +2829,19 @@ msgid "Compute.api::resetState %s"
msgstr "compute.api::pokraÄování %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
-#, python-format
-msgid "Cannot show aggregate: %(id)s"
-msgstr ""
+#, fuzzy, python-format
+msgid "Cannot show aggregate: %s"
+msgstr "Nelze aktualizovat agenta: %(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, fuzzy, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr "Nelze aktualizovat agenta: %(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:127
-#, python-format
-msgid "Cannot delete aggregate: %(id)s"
-msgstr ""
+#, fuzzy, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr "Nelze aktualizovat agenta: %(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:140
#, python-format
@@ -2817,30 +2896,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 ""
@@ -2925,28 +3009,28 @@ msgstr "Síť nemá Äinnost %s"
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr "%s musí být buÄ 'MANUAL' nebo 'AUTO'."
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
#, fuzzy
msgid "host and onSharedStorage must be specified."
msgstr "host a block_migration musí být zadány."
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, fuzzy, python-format
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."
@@ -2997,7 +3081,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:437
msgid "Missing parameter dict"
msgstr "Chybí parametr dict"
@@ -3050,7 +3134,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "Plovoucí ip %(address)s není přidružena."
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3084,29 +3168,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr "Nastavování hostitele %(host)s na %(state)s."
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Volání pro získání %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Aktualizace statistik hostitele"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr "Describe-resource je funkce pouze pro správce"
@@ -3131,11 +3215,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"
@@ -3252,16 +3331,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"
@@ -3271,7 +3350,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "Není dostatek parametrů k sestavení platného pravidla."
@@ -3290,16 +3369,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:356
#, 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:440
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:444
msgid "Security group name cannot be empty"
msgstr "Název bezpeÄnostní skupiny nemůže být prázdné"
@@ -3313,12 +3392,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"
@@ -3337,174 +3416,236 @@ msgstr "svazek=%s"
msgid "Delete volume with id: %s"
msgstr "Smazat svazek s id: %s"
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "instance %s: není zavedena"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: nova/api/openstack/compute/contrib/volumes.py:380
#, fuzzy, python-format
msgid "Bad volumeId format: volumeId 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/contrib/volumes.py:396
+#: 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 "Připojit svazek %(volume_id)s k instanci %(server_id)s na %(device)s"
-#: nova/api/openstack/compute/contrib/volumes.py:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr "Smazat snímek s id: %s"
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr "Vytvořit snímek ze svazku %s"
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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 ""
-#: nova/cells/messaging.py:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: 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:503
+#: 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:523
+#: 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:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: 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:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3527,7 +3668,7 @@ msgstr "Síťovou masku kterou odeslat do nastavení openvpn"
msgid "Launching VPN for %s"
msgstr "Spouštění VPN pro %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Nelze vytvořit svazek"
@@ -3547,282 +3688,282 @@ msgstr "prvek není podřazený"
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
#, fuzzy
msgid "leasing ip"
msgstr "Vytváření obrazu"
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
#, fuzzy
msgid "releasing ip"
msgstr "Vytváření obrazu"
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "obdrženo: %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "Chyba DB: %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "Reset sítě"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "poÄáteÄní adresa"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
#, fuzzy
msgid "No fixed IP found."
msgstr "Bylo nalezeno nula pevných ip."
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, fuzzy, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr "K instanci nejsou přidruženy žádné pevné ip"
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "Plovoucí ip %(address)s je přidružena."
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr "id"
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr "IPv4"
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr "IPv6"
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr "poÄáteÄní adresa"
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr "DNS1"
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr "DNS2"
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr "VlanID"
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr "projekt"
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr "uuid"
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "Síť nenalezena"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
#, fuzzy
msgid "UUID is required to delete Quantum Networks"
msgstr "%(req)s je vyžadováno pro vytvoření sítě."
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "zastavit instanci %r"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "Služba %(service_id)s nemohla být nalezena."
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "Služba %(service_id)s nemohla být nalezena."
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "NeoÄekávaná chyba: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
#, fuzzy
msgid "PROJECT"
msgstr "projekt"
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3906,26 +4047,36 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: 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:297
+#: 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:317
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
@@ -3934,99 +4085,99 @@ msgstr ""
"PÅ™ekroÄena kvóta pro %(pid)s, pokus o nastavení %(num_metadata)s "
"vlastností metadat"
-#: nova/compute/api.py:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: 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:335
+#: 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:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: 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:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "BUde spuÅ¡tÄ›no ukonÄování insatncí"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, 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:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "BUde spuÅ¡tÄ›no ukonÄování insatncí"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, 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:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Pokus o jemné smazání %s"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Pokus o ukonÄení %s"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Pokus o zastavení %s"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "Pokus o spuštění %s"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr "Hledání podle: %s"
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Spouštění snímku ve VM %s"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr "flavor_id je None. Předpokládán přesun."
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -4035,62 +4186,63 @@ msgstr ""
"Stará instance typu %(current_instance_type_name)s, nová instance typu "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, 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:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Pokus o ukonÄení %s"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, 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:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr "BezpeÄnostní skupina %s nemůže být prázdná."
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, fuzzy, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
@@ -4099,69 +4251,74 @@ msgstr ""
"Hodnota (%s) parametru GroupName je neplatná. Délka pÅ™ekraÄuje maximum "
"255 znaků."
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, 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:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "VytvoÅ™it bezpeÄnostní skupinu %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr "BezpeÄnostní skupina %s již existuje"
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Nelze zniÄit vbd %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Nelze zniÄit vbd %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "Id bezpeÄnostní skupiny by mÄ›lo být celé Äíslo"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Smazat bezpeÄnostní skupinu %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr "Pravidlo (%s) nenalezeno"
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
#, fuzzy
msgid "Quota exceeded, too many security group rules."
msgstr "PÅ™idávání pravidla bezpeÄnostní skupiny: %r"
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Povolit přístup bezpeÄnostní skupiny %s"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "ZruÅ¡it přístup bezpeÄnostní skupiny %s"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr "Id bezpeÄnostní skupiny by mÄ›lo být celé Äíslo"
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, fuzzy, python-format
msgid "Aborting claim: %s"
msgstr "Informace o síti instance: |%s|"
@@ -4196,85 +4353,85 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
#, fuzzy, python-format
-msgid "'%s' argument must be a positive integer"
-msgstr "argumenty create musí být kladná celá Äísla"
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr "Vlastnost createBackup 'rotation' musí být celé Äíslo"
-#: nova/compute/flavors.py:113
+#: nova/compute/flavors.py:117
#, fuzzy
msgid "'rxtx_factor' argument must be a positive float"
msgstr "argumenty create musí být kladná celá Äísla"
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
-msgstr ""
-
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr "Chyba DB: %s"
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr "Instance typu %s není nalezena ke smazání"
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
@@ -4283,247 +4440,234 @@ msgstr ""
"Nelze pÅ™esunout instanci (%(instance_id)s) na souÄasného hostitele "
"(%(host)s)."
-#: nova/compute/manager.py:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Nelze restartovat instanci"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr "Restartování instance po restartu nova-compute."
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
#, fuzzy
msgid "Hypervisor driver does not support resume guests"
msgstr "OvladaÄ hypervizoru nepodporuje pravidla firewallu"
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Nelze pozastavit instanci"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "OvladaÄ hypervizoru nepodporuje pravidla firewallu"
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "NeoÄekávaný kód stavu"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "Kontrola stavu"
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr "Nastavování bdm %s"
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: 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:955
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "Instance nemohla být spuštěna"
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Chyba DB: %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "Spouštění instance..."
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "Informace o síti instance: |%s|"
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "Instance selhala nastavení blokového zařízení"
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "Instance nemohla být spuštěna"
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "Navrácení sítě pro instnac"
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s nstance"
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Navrácení sítě pro instnac"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, fuzzy, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "Ignorování DiskNenalezen: %s"
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "ukonÄování bdm %s"
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s. Nastavování stavu vm instance na ERROR"
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Znovu sestavování instance %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, 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:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Vytvořit snímek ze svazku %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Restartování instance %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, fuzzy, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
@@ -4532,22 +4676,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:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Nelze znovu sestavit instanci [%(instance_uuid)s]: %(exc)s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: znovu zavedena"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: pořizování snímku"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, fuzzy, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
@@ -4556,47 +4700,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:1929
+#: nova/compute/manager.py:1920
#, 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:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr "Střídání %d záloh"
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr "Mazání obrazu %s"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, 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:1976
+#: nova/compute/manager.py:1967
#, fuzzy
msgid "Root password set"
msgstr "Instance %s: Nastavení hesla root"
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
#, 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:1998
+#: nova/compute/manager.py:1989
#, fuzzy, python-format
msgid "set_admin_password failed: %s"
msgstr "set_admin_password není tímto ovladaÄem zavedeno"
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
#, fuzzy
msgid "error setting admin password"
msgstr "Chyba při nastavování hesla správce"
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, fuzzy, python-format
msgid ""
"trying to inject a file into a non-running (state: "
@@ -4605,179 +4749,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:2022
+#: nova/compute/manager.py:2013
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "Vkládání cesty souboru: '%s'"
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Nelze pozastavit instanci"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Chyba DB: %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
#, fuzzy
msgid "Unrescuing"
msgstr "instance %s: rušení záchrany"
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Nastavování instance %(instance_uuid)s do stavu ERROR"
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "Instance nemá svazek."
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr "cíl stejný jako zdroj!"
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
#, fuzzy
msgid "Pausing"
msgstr "Aktualizování!"
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: získávání diagnostik"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "Reset sítě"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
#, fuzzy
msgid "Inject network info"
msgstr "instance %s: vkládání informací o síti"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr "network_info vkládá: |%s|"
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Získat výstup konzole pro instanci %s"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
#, fuzzy
msgid "Getting vnc console"
msgstr "instance %s: získávání konzole vnc"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "instance %s: získávání konzole vnc"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, 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:2967
+#: nova/compute/manager.py:2999
#, 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:2976
+#: nova/compute/manager.py:3008
#, 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:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, 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:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Odpojování svazku z neznámé instance %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, 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:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Síť %(network_id)s nemohla být nalezena."
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Hostitel %(host)s nemohl být nalezen."
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, 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:3306
+#: nova/compute/manager.py:3344
#, fuzzy
msgid "_post_live_migration() is started.."
msgstr "zahájen přesun po spuštění."
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, 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:3363
+#: nova/compute/manager.py:3401
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4785,21 +4934,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:3377
+#: nova/compute/manager.py:3416
#, fuzzy
msgid "Post operation of migration started"
msgstr "Spuštěna operace po migraci"
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Nelze získat metadata pro ip: %s"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
@@ -4808,64 +4957,64 @@ msgstr ""
"Nalezeno %(migration_count)d nepotvrzených přesunů starších než "
"%(confirm_window)d vteřin"
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, 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:3592
+#: nova/compute/manager.py:3649
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "Instance %(instance_id)s nenalezena"
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
#, fuzzy
msgid "In ERROR state"
msgstr "Uzel je v neznámém chybovém stavu."
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr "Aktualizace mezipaměti využití šířky pásma"
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Aktualizace mezipaměti využití šířky pásma"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr "Aktualizace stavu hostitele"
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4874,67 +5023,67 @@ msgstr ""
"Nalezeno %(num_db_instances)s v databázi a %(num_vm_instances)s na "
"hypervizoru."
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "Instance není zapnuta"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0, překskování..."
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr "Znovu získávání smazané instance"
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Zaznamování ovladaÄe svazku: %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 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:4079
+#: nova/compute/manager.py:4113
#, fuzzy, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
@@ -4943,7 +5092,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:4086
+#: nova/compute/manager.py:4120
#, fuzzy, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
@@ -4952,13 +5101,18 @@ 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:4093
+#: nova/compute/manager.py:4127
#, 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:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "Nastavování instance %(instance_uuid)s do stavu ERROR"
+
#: nova/compute/resource_tracker.py:92
msgid ""
"Host field should not be set on the instance until resources have been "
@@ -5070,18 +5224,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:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5162,56 +5316,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5228,56 +5398,61 @@ msgstr "verze by mÄ›la být celé Äíslo"
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5314,32 +5489,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"
@@ -5358,16 +5538,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"
@@ -5484,17 +5668,17 @@ msgstr "Tento ovladaÄ podporuje pouze záznamy typu 'a'."
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr "Pokus o odstranění řetězu %s, který neexistuje"
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr "Neznámý řetěz: %r"
-#: nova/network/linux_net.py:280
+#: nova/network/linux_net.py:279
#, python-format
msgid ""
"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
@@ -5503,86 +5687,86 @@ msgstr ""
"Pokus o odstranění neexistujícího pravidla: %(chain)r %(rule)r %(wrap)r "
"%(top)r"
-#: nova/network/linux_net.py:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr "IPTablesManager.použití úspěšnÄ› dokonÄeno"
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, fuzzy, python-format
msgid "arping error for ip %s"
msgstr "chyba v httplib v %s: "
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: 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:1022
+#: 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:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "ukonÄení radvd vrhlo %s"
-#: nova/network/linux_net.py:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Neplatný stav: '%s'"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: 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:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Zajišťování mostu %s"
-#: nova/network/linux_net.py:1459
+#: 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:1495
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Nelze pozastavit instanci"
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Zajišťování mostu %s"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Zajišťování mostu %s"
@@ -5683,18 +5867,18 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr "cidr je již používáno"
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
"požadovaný cidr (%(cidr)s) je v konfliktu s existující supersítí "
"(%(super)s)"
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
@@ -5703,22 +5887,22 @@ msgstr ""
"požadovaný cidr (%(cidr)s) je v konfliktu s existujícím menším cidr "
"(%(smaller)s)"
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr "Síť již existuje!"
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr "Síť musí být odlouÄena od projektu %s pÅ™ed smazáním"
-#: nova/network/manager.py:1794
+#: nova/network/manager.py:1795
msgid ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
msgstr "Suma mezi poÄtem sítí a spuÅ¡tÄ›ní vlan nemůže být vÄ›tší než 4094"
-#: nova/network/manager.py:1801
+#: nova/network/manager.py:1802
#, fuzzy, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5756,80 +5940,80 @@ msgstr "_smazat: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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."
@@ -5839,70 +6023,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:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5916,32 +6105,52 @@ 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"
msgstr "omezení cizího klíÄe nemohlo být vynecháno"
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, fuzzy, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr "Získán semafor \"%(lock)s\" pro zámek metody \"%(method)s\""
-#: nova/openstack/common/lockutils.py:195
+#: nova/openstack/common/lockutils.py:199
#, fuzzy, python-format
msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
msgstr "Pokus o získání zámku souboru \"%(lock)s\" pro zámek metody \"%(method)s\""
-#: nova/openstack/common/lockutils.py:222
+#: nova/openstack/common/lockutils.py:226
#, fuzzy, python-format
msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr "Získán zámek souboru \"%(lock)s\" pro zámek metody \"%(method)s\""
-#: nova/openstack/common/lockutils.py:230
+#: nova/openstack/common/lockutils.py:234
#, fuzzy, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr "Získán zámek souboru \"%(lock)s\" pro zámek metody \"%(method)s\""
@@ -5951,17 +6160,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"
@@ -6036,21 +6245,102 @@ msgstr "Získány neznámé argumenty klíÄového slova pro utils.execute: %r"
msgid "Running cmd (subprocess): %s"
msgstr "Spouštění příkazu (podproces): %s"
+#: 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 "Výsledek byl %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr "%r selhalo. Opakování."
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Spouštění příkazu (SSH): %s"
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr "Prostředí není podporováno přes SSH"
+
+#: nova/openstack/common/processutils.py:225
+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: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ů."
@@ -6179,12 +6469,12 @@ msgstr "Provádění asynchronního obsazení rozvětvení..."
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "Vyskytla se neoÄekávaná výjimka."
-#: nova/openstack/common/rpc/common.py:104
+#: nova/openstack/common/rpc/common.py:105
#, python-format
msgid ""
"Remote error: %(exc_type)s %(value)s\n"
@@ -6193,52 +6483,57 @@ msgstr ""
"Vzdálená chyba: %(exc_type)s %(value)s\n"
"%(traceback)s."
-#: nova/openstack/common/rpc/common.py:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "Neplatné znovu použití připojení RPC."
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6271,44 +6566,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 ""
@@ -6558,7 +6853,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, fuzzy, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6568,37 +6863,49 @@ msgstr ""
"(hostitel:%(avail)s <= instance:%(mem_inst)s)"
#: nova/scheduler/filter_scheduler.py:73
-#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+#, fuzzy, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr "Pokus o sestavení %(num_instances)d instancí"
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, fuzzy, python-format
+msgid "Request Spec: %s"
+msgstr "Požadavek: %s"
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "Filtrováno %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:357
-#, python-format
-msgid "Choosing host %(chosen_host)s"
-msgstr ""
+#: nova/scheduler/filter_scheduler.py:361
+#, fuzzy, python-format
+msgid "Weighed %(hosts)s"
+msgstr "Filtrováno %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6672,10 +6979,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
@@ -6683,6 +6997,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"
@@ -6718,14 +7037,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 ""
@@ -6795,47 +7114,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 ""
@@ -6888,82 +7207,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "Pokus o vytvoÅ™ení instanci jedináÄka"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr "Předstírání spuštění příkazu (subprocess): %s"
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr "Předstíraný příkaz odpovídá %s"
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr "Předstíraný příkaz způsobil výjimku %s"
-#: nova/tests/fake_utils.py:101
+#: nova/tests/fake_processutils.py:100
#, python-format
msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
msgstr "OdpovÄ›Ä na pÅ™edstíraný příkaz je stdout='%(stdout)s' stderr='%(stderr)s'"
-#: nova/tests/fake_volume.py:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr "stav musí být dostupný"
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr "již připojeno"
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6976,63 +7255,75 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "Spouštění instancí: %s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "Po ukonÄení instancí: %s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr "Vnitřní chyba"
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr "Po vynuceném ukonÄení instancí: %s"
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
#, 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:1593
+#, 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"
@@ -7042,22 +7333,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"
@@ -7122,35 +7413,74 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+#, fuzzy
+msgid "Unable to load the virtualization driver"
msgstr "Nelze naÄíst ovladaÄ virtualizace: %s"
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7274,19 +7604,19 @@ msgstr "pozastavení není v vmwareapi popdorováno"
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr "OdpovÄ›Ä na pÅ™edstíraný příkaz je stdout='%(stdout)s' stderr='%(stderr)s'"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7457,15 +7787,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7524,97 +7854,97 @@ msgstr "nenalezeny žádné oddíly"
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr "obraz již je připojen"
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, fuzzy, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr "Ignorování chyby při vkládání dat do obrazu %(img_id)s (%(e)s)"
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "Nelze připojit souborový systém: %s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "Nelze připojit souborový systém: %s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, fuzzy, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr "Ignorování chyby při vkládání dat do obrazu %(img_id)s (%(e)s)"
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7953,7 +8283,7 @@ msgstr "Verze agenta instance: %s"
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: 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"
@@ -7968,24 +8298,24 @@ msgstr "Získat výstup konzole pro instanci %s"
msgid "Host IP address is: %s"
msgstr "Uvolnit adresu %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -8135,51 +8465,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 ""
@@ -8319,12 +8649,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:1876
+#: 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:1883
+#: 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'"
@@ -8490,7 +8820,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:902
+#: 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"
@@ -8524,247 +8854,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:727
+#: 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:742
+#: 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:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr "Instance úspěšnÄ› zniÄena."
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Instance budou zastaveny"
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: 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:865
+#: 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:908
+#: 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:915
+#: 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:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: 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:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Źádné sítÄ› nejsou urÄeny."
-#: nova/virt/libvirt/driver.py:1086
+#: 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:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Źádné sítÄ› nejsou urÄeny."
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "Instance úspěšně restartována."
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Nelze restartovat instanci"
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
#, fuzzy
msgid "Instance shutdown successfully."
msgstr "Instance úspěšně vytvořena."
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr "Instance úspěšně restartována."
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr "Instance je spuštěna"
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: 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:1560
+#: 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:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: 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:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "Vytváření obrazu"
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8772,12 +9102,12 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
@@ -8786,27 +9116,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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: nova/virt/libvirt/driver.py:2594
#, fuzzy
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
@@ -8815,35 +9145,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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: 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:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8851,21 +9181,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8874,16 +9204,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:3002
+#: 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:3010
+#: 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:3047
+#: nova/virt/libvirt/driver.py:3059
#, fuzzy, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
@@ -8892,7 +9222,7 @@ msgstr ""
"Nelze přesunout %(instance_id)s do %(dest)s: Nedostatek disku "
"(hostitel:%(available)s <= instance:%(necessary)s)"
-#: nova/virt/libvirt/driver.py:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
@@ -8901,7 +9231,7 @@ msgstr ""
"Spuštěná instance má info o CPU:\n"
"%s"
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8916,7 +9246,7 @@ msgstr ""
"\n"
"Prohlédněte si %(u)s"
-#: nova/virt/libvirt/driver.py:3101
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8925,24 +9255,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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: 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:3314
+#: 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:3426
+#: nova/virt/libvirt/driver.py:3447
#, fuzzy, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
@@ -8951,42 +9281,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:3443
+#: 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:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: 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:3619
+#: nova/virt/libvirt/driver.py:3647
#, fuzzy
msgid "Instance running successfully."
msgstr "Instance %s úspěšně běží."
-#: nova/virt/libvirt/driver.py:3625
+#: 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:3687
+#: 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:3808
+#: nova/virt/libvirt/driver.py:3840
#, fuzzy, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr "Mazání souborů instance %(target)s"
@@ -9021,46 +9351,46 @@ 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:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, fuzzy, python-format
msgid "Unknown image_type=%s"
msgstr "neznámá obslužná rutina obrazu disku: %s"
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, fuzzy, python-format
msgid "Reading image info file: %s"
msgstr "Odstraňování základního souboru: %s"
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Odstraňování základního souboru: %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr "%s je platný název instance"
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr "%s má soubor disku"
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr "Instance %(instance)s je zálohována %(backing)s"
-#: nova/virt/libvirt/imagecache.py:350
+#: nova/virt/libvirt/imagecache.py:347
#, python-format
msgid ""
"Instance %(instance)s is using a backing file %(backing)s which does not "
@@ -9069,12 +9399,12 @@ msgstr ""
"Instance %(instance)s používá soubor zálohy %(backing)s, který se "
"neobjevuje ve službě obrazu"
-#: nova/virt/libvirt/imagecache.py:426
+#: nova/virt/libvirt/imagecache.py:422
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image verification failed"
msgstr "%(container_format)s-%(id)s (%(base_file)s):ověření obrazu selhalo"
-#: nova/virt/libvirt/imagecache.py:436
+#: nova/virt/libvirt/imagecache.py:432
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): image verification skipped, no hash "
@@ -9083,37 +9413,37 @@ msgstr ""
"%(container_format)s-%(id)s (%(base_file)s): ověření obrazu pÅ™eskoÄeno, "
"žádný hash neuložen"
-#: nova/virt/libvirt/imagecache.py:445
+#: nova/virt/libvirt/imagecache.py:441
#, fuzzy, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr "%(container_format)s-%(id)s (%(base_file)s): kontrolování"
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, fuzzy, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr "Nelze odstranit %(base_file)s, chyba byla %(error)s"
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr "Základní souboru je příliš nový k odstranění: %s"
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr "Odstraňování základního souboru: %s"
-#: nova/virt/libvirt/imagecache.py:482
+#: nova/virt/libvirt/imagecache.py:478
#, python-format
msgid "Failed to remove %(base_file)s, error was %(error)s"
msgstr "Nelze odstranit %(base_file)s, chyba byla %(error)s"
-#: nova/virt/libvirt/imagecache.py:493
+#: nova/virt/libvirt/imagecache.py:489
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr "%(container_format)s-%(id)s (%(base_file)s): kontrolování"
-#: nova/virt/libvirt/imagecache.py:517
+#: nova/virt/libvirt/imagecache.py:513
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
@@ -9122,7 +9452,7 @@ msgstr ""
"%(container_format)s-%(id)s (%(base_file)s): je používáno: v tomto uzlu "
"%(local)d local, %(remote)d v ostatních uzlech"
-#: nova/virt/libvirt/imagecache.py:529
+#: nova/virt/libvirt/imagecache.py:525
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
@@ -9131,51 +9461,51 @@ msgstr ""
"%(container_format)s-%(id)s (%(base_file)s): varování -- je používán "
"chybějící základní soubor! instance: %(instance_list)s"
-#: nova/virt/libvirt/imagecache.py:541
+#: nova/virt/libvirt/imagecache.py:537
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image is not in use"
msgstr "%(container_format)s-%(id)s (%(base_file)s): obraz není používán"
-#: nova/virt/libvirt/imagecache.py:548
+#: nova/virt/libvirt/imagecache.py:544
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image is in use"
msgstr "%(container_format)s-%(id)s (%(base_file)s): obraz je používán"
-#: nova/virt/libvirt/imagecache.py:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr "Přeskakování oěření, žádný základní adresář v %s"
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr "Ověřit základní obrazy"
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr "Neznámý základní soubor: %s"
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr "Aktivní základní soubory: %s"
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr "Poškozené základní soubory: %s"
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr "Odstranitelné základní soubory: %s"
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr "Ověření dokonÄeno"
@@ -9194,7 +9524,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. "
@@ -9202,17 +9532,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 ""
@@ -9289,12 +9619,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr "iSCSI zařízení v %s nenalezeno"
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, fuzzy, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9308,43 +9638,43 @@ msgstr ""
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:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: 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:548
+#: 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:562
+#: 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:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: 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:712
+#: nova/virt/libvirt/volume.py:726
#, fuzzy, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
@@ -9353,30 +9683,30 @@ 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:728
+#: 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)"
-#: nova/virt/libvirt/volume.py:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9400,86 +9730,86 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
#, fuzzy
msgid "Connection error connecting PowerVM manager"
msgstr "Chyba připojení během kontaktování serveru glance, další pokus"
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Spouštění příkazu (podproces): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "Připojení k melange selhalo"
@@ -9503,7 +9833,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 ""
@@ -9572,74 +9902,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "Instance nenalezena"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "Odstraňování základního souboru: %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Získávání seznamu instancí"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "instance %s: Vytváření obrazu"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Instance budou spuštěny"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, fuzzy, python-format
msgid "Instance '%s' failed to boot"
msgstr "instance %s: znovu zavedena"
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, fuzzy, python-format
msgid "Instance spawned in %s seconds"
msgstr "instance %s úspěšn spuštěna"
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "instance %s: pořizování snímku"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "Zapínání instance VM %s"
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "Instance budou spuštěny"
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9658,27 +9988,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"
@@ -9745,7 +10075,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"
@@ -9753,12 +10083,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"
@@ -10143,62 +10473,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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"
@@ -10321,14 +10651,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, fuzzy, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
@@ -10337,12 +10667,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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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. "
@@ -10351,67 +10681,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"
@@ -10419,7 +10749,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"
@@ -10427,11 +10757,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"
@@ -10450,24 +10784,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: 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:570
+#: 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:630
+#: 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:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Obdržena výjimka: %s"
@@ -10607,74 +10941,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:272
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_vytvořit: %s"
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "již odpojeno"
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: 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:409
+#: 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:412
+#: 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:438
+#: 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:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10683,37 +11017,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:479
+#: 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:504
+#: 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:590
+#: 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:635
+#: 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:648
+#: 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:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
@@ -10722,68 +11056,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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
@@ -10792,64 +11119,64 @@ msgstr ""
"Obraz Kernel/Ramdisk je příliš velký: %(vdi_size)d bajtů, max "
"%(max_size)d bajtů"
-#: nova/virt/xenapi/vm_utils.py:1268
+#: 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:1282
+#: 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:1291
+#: 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:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: 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:1418
+#: 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:1521
+#: 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:1548
+#: 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:1576
+#: 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:1594
+#: 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 "
@@ -10858,50 +11185,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:1607
+#: 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:1615
+#: 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:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO: není obsah iso"
-#: nova/virt/xenapi/vm_utils.py:1620
+#: 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:1623
+#: 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:1627
+#: 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:1629
+#: 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:1632
+#: 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:1635
+#: 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:1638
+#: 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:1660
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
@@ -10910,22 +11237,22 @@ msgstr ""
"Nelze získat RRD XML pro VM %(vm_uuid)s mající podrobnosti serveru: "
"%(server)s."
-#: nova/virt/xenapi/vm_utils.py:1676
+#: 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:1730
+#: 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:1790
+#: 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:1877
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10934,66 +11261,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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Zapojování VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: 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:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: 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:2011
+#: 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:2013
+#: 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:2015
+#: 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 "
@@ -11001,16 +11328,16 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "Oddíly:"
-#: nova/virt/xenapi/vm_utils.py:2038
+#: 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:2063
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
@@ -11019,39 +11346,46 @@ msgstr ""
"Zapisování tabulky oddílů %(primary_first)d %(primary_last)d do "
"%(dev_path)s..."
-#: nova/virt/xenapi/vm_utils.py:2076
+#: 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:2130
+#: 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:2163
+#: 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:2215
+#: 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:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "Aktualizace postupu instance '%(instance_uuid)s' na %(progress)d"
@@ -11061,217 +11395,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Spouštění instance..."
-#: nova/virt/xenapi/vmops.py:381
+#: 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:454
+#: 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:485
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Nelze aktualizovat svazek v db"
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
#, 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:630
+#: nova/virt/xenapi/vmops.py:643
#, fuzzy
msgid "Starting VM"
msgstr "Restartování xvp"
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, 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:653
+#: nova/virt/xenapi/vmops.py:666
#, 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:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr "Verze agenta instance: %s"
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr "Nastavování váhy VCPU"
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, fuzzy, python-format
msgid "Could not find VM with name %s"
msgstr "Nelze najít odkaz na VDI"
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "DokonÄen snímek a nahrání na VM %s"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr "Nelze převést vhd na nového hostitele"
-#: nova/virt/xenapi/vmops.py:813
-#, fuzzy, python-format
-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"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Nelze restartovat instanci"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, 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:948
+#: nova/virt/xenapi/vmops.py:1002
#, fuzzy
msgid "Resize complete"
msgstr "Změna velikosti %s je hotova"
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Unable to find root VBD/VDI for VM"
msgstr "Neůze najít vbd pro vdi %s"
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "Restartování xvp"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
#, 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:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr "Instance mí kernel nebo ramdisk, ale ne oba"
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr "soubory kernel/ramdisk odstraněny"
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
#, fuzzy
msgid "Destroying VM"
msgstr "Restartování xvp"
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr "VM není přítomno, pÅ™eskakování niÄení..."
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, 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:1278
+#: nova/virt/xenapi/vmops.py:1332
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "VM není přítomno, pÅ™eskakování niÄení..."
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
#, fuzzy
msgid "Automatically hard rebooting"
msgstr "Automatický tvrdý restart %d"
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
#, 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:1490
+#: nova/virt/xenapi/vmops.py:1544
#, fuzzy
msgid "Creating vifs"
msgstr "Vytváření obrazu"
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, 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:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
#, fuzzy
msgid "Injecting hostname to xenstore"
msgstr "Vkládání názvu hostitele do xs pro vm: |%s|"
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Špatný formát sítě"
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
#, fuzzy
msgid "Migrate Send failed"
msgstr "Vytvoření selhalo"
@@ -11354,7 +11698,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 "
@@ -11362,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 "Neznámý základní soubor: %s"
@@ -11402,18 +11746,21 @@ msgstr "NeoÄekávaná chyba: %s"
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr "Spouštění uzlu nova-xvpvncproxy (verze %s)"
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
#, fuzzy
msgid "status must be 'in-use'"
msgstr "stav musí být dostupný"
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
#, fuzzy
msgid "status must be 'available'"
msgstr "stav musí být dostupný"
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr "Dvojice klíÄů '%s' již existuje."
+
diff --git a/nova/locale/da/LC_MESSAGES/nova.po b/nova/locale/da/LC_MESSAGES/nova.po
index 6d520985e..778652e40 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -938,9 +938,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1008,510 +1008,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1596,130 +1549,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,69 +1677,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1800,7 +1754,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1810,7 +1764,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1842,137 +1796,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2012,46 +1966,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2059,63 +2053,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2125,21 +2120,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 ""
@@ -2150,6 +2149,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 ""
@@ -2169,14 +2169,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2219,13 +2219,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2234,20 +2234,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2260,12 +2263,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2273,17 +2276,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2319,10 +2322,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 ""
@@ -2348,220 +2353,293 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2648,7 +2726,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2668,17 +2746,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2730,28 +2808,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 ""
@@ -2830,27 +2913,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2898,7 +2981,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2946,7 +3029,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2979,29 +3062,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3026,11 +3109,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 ""
@@ -3141,16 +3219,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 ""
@@ -3160,7 +3238,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3177,16 +3255,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3198,11 +3276,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 ""
@@ -3220,174 +3298,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3409,7 +3548,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3429,270 +3568,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3772,242 +3911,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4041,714 +4196,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4858,18 +5013,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4947,54 +5102,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5011,56 +5182,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5096,32 +5271,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 ""
@@ -5140,15 +5320,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 ""
@@ -5262,103 +5446,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5453,38 +5637,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5519,79 +5703,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5601,65 +5784,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5671,32 +5859,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5706,17 +5913,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 ""
@@ -5789,21 +5996,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5932,63 +6219,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6017,44 +6309,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 ""
@@ -6296,7 +6588,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6305,36 +6597,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6406,10 +6710,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
@@ -6417,6 +6728,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"
@@ -6452,14 +6768,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 ""
@@ -6529,46 +6845,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 ""
@@ -6621,79 +6937,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6706,61 +6985,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6770,22 +7059,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"
@@ -6847,35 +7136,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -6995,19 +7321,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7175,15 +7501,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7241,97 +7567,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7665,7 +7991,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7679,24 +8005,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7837,50 +8163,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 ""
@@ -8017,12 +8343,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8180,7 +8506,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8214,236 +8540,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "bind %s: slettet"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8451,73 +8777,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8525,50 +8851,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8578,67 +8904,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8671,153 +8997,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8836,7 +9162,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. "
@@ -8844,17 +9170,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 ""
@@ -8930,12 +9256,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8947,70 +9273,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9034,83 +9360,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9133,7 +9459,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 ""
@@ -9201,74 +9527,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9284,27 +9610,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 ""
@@ -9370,18 +9696,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 ""
@@ -9714,54 +10040,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9882,107 +10208,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -9998,24 +10328,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10152,374 +10482,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10527,55 +10850,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10585,197 +10915,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10855,7 +11194,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 "
@@ -10863,7 +11202,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 ""
@@ -10903,16 +11242,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/de/LC_MESSAGES/nova.po b/nova/locale/de/LC_MESSAGES/nova.po
index 7ed7e62f6..653b1ae9d 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -939,9 +939,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1009,511 +1009,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, 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:1197
+#: nova/exception.py:1198
#, 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/hooks.py:62
-#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
-msgstr ""
-
-#: nova/hooks.py:70
+#: nova/exception.py:1203
#, 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"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
-msgstr ""
-
-#: nova/quota.py:966
+#: nova/exception.py:1208
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1214
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1218
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1222
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1226
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Ergebnis war %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1598,130 +1550,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1731,69 +1678,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1802,7 +1755,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1812,7 +1765,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1844,138 +1797,138 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "Instanz %s: Rettung"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2015,46 +1968,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2062,63 +2055,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2128,21 +2122,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 +2151,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,14 +2171,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2222,13 +2221,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2237,20 +2236,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2263,12 +2265,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2276,17 +2278,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2322,10 +2324,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 ""
@@ -2351,220 +2355,294 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Instanz %s: Rettung"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2651,7 +2729,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2671,17 +2749,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2734,28 +2812,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 ""
@@ -2835,27 +2918,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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"
@@ -2904,7 +2987,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2952,7 +3035,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2985,29 +3068,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3032,11 +3115,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 ""
@@ -3147,16 +3225,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 ""
@@ -3166,7 +3244,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3183,16 +3261,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3204,11 +3282,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 ""
@@ -3226,174 +3304,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: 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:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3415,7 +3555,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Nicht möglich volume %s zufinden"
@@ -3435,270 +3575,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3779,243 +3919,259 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Nicht möglich volume %s zufinden"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Nicht möglich volume %s zufinden"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4049,721 +4205,721 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Volume %s: erstelle Export"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: 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:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "Instanz %s: Rettung"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "Instanz %s: Rettung"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Instanz %s pausiert"
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "Instanz %s: Rettung"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4873,18 +5029,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4962,54 +5118,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5026,56 +5198,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5111,32 +5287,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 ""
@@ -5155,15 +5336,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 ""
@@ -5277,103 +5462,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5468,38 +5653,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5534,80 +5719,79 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5617,65 +5801,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5687,32 +5876,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5722,17 +5930,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 ""
@@ -5805,21 +6013,102 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "Führe Kommando (subprocess) aus: %s"
+#: 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 "Ergebnis war %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: 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
+#, 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: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 ""
@@ -5948,63 +6237,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6033,44 +6327,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 ""
@@ -6312,7 +6606,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6321,36 +6615,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6422,10 +6728,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
@@ -6433,6 +6746,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"
@@ -6468,14 +6786,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 ""
@@ -6545,46 +6863,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 ""
@@ -6637,79 +6955,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6722,61 +7003,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6786,22 +7077,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"
@@ -6863,35 +7154,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7016,19 +7344,19 @@ msgstr ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7196,15 +7524,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7262,97 +7590,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7686,7 +8014,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7700,24 +8028,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7858,50 +8186,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 ""
@@ -8038,12 +8366,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:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8203,7 +8531,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8237,236 +8565,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "Volume %s: erfolgreich erstellt"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8474,73 +8802,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8548,50 +8876,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8601,67 +8929,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8694,153 +9022,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8859,7 +9187,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. "
@@ -8867,17 +9195,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 ""
@@ -8953,12 +9281,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8970,70 +9298,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9057,83 +9385,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Führe Kommando (subprocess) aus: %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9156,7 +9484,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 ""
@@ -9224,74 +9552,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "Instanz %s pausiert"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "Instanz %s: Rettung"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9307,27 +9635,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 ""
@@ -9393,18 +9721,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 ""
@@ -9738,54 +10066,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9908,107 +10236,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10024,24 +10356,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10178,374 +10510,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10553,55 +10878,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10611,197 +10943,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10882,7 +11224,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 "
@@ -10890,7 +11232,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 ""
@@ -10930,16 +11272,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/en_AU/LC_MESSAGES/nova.po b/nova/locale/en_AU/LC_MESSAGES/nova.po
index 0f2c086f5..23307ea09 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -84,7 +84,7 @@ msgstr "Flags path: %s"
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -168,8 +168,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -185,8 +184,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -200,7 +200,7 @@ msgstr "Invalid signature for user %s"
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -944,10 +944,10 @@ msgstr ""
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:898 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
#, python-format
@@ -1014,281 +1014,314 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, 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:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "instance %s: booted"
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "instance %s: booted"
+#: nova/exception.py:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "group %s already exists"
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1299,7 +1332,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 ""
@@ -1320,205 +1353,125 @@ msgstr ""
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
-msgid "Full set of CONF:"
-msgstr ""
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr ""
-
-#: 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
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "start address"
-
-#: 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 "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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Running cmd (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Result was %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Link Local address is not found.:%s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "Invalid backend: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1603,7 +1556,7 @@ msgstr ""
msgid "Too many failed authentications."
msgstr "Too many failed authentications."
-#: nova/api/ec2/__init__.py:184
+#: nova/api/ec2/__init__.py:183
#, python-format
msgid ""
"Access key %(access_key)s has had %(failures)d failed authentications and"
@@ -1612,124 +1565,119 @@ msgstr ""
"Access key %(access_key)s has had %(failures)d failed authentications and"
" will be locked out for %(lock_mins)d minutes."
-#: nova/api/ec2/__init__.py:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Authentication Failure: %s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Too many failed authentications."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "action: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr "arg: %(key)s\t\tval: %(value)s"
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr "Unauthorised request for controller=%(controller)s and action=%(action)s"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr "InstanceNotFound raised: %s"
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr "VolumeNotFound raised: %s"
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "NotFound raised: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, fuzzy, python-format
msgid "QuotaError raised: %s"
msgstr "Unexpected error raised: %s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "Unexpected error raised: %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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 "An unknown error has occurred. Please try your request again."
-#: nova/api/ec2/apirequest.py:62
+#: 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,69 +1687,75 @@ msgstr "Unsupported API request: controller = %(controller)s, action = %(action)
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, fuzzy, python-format
msgid "Could not find key pair(s): %s"
msgstr "Failed to decrypt private key: %s"
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Create key pair %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Delete key pair %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, fuzzy, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr "Not enough parameters to build a valid rule."
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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 "No rule for the specified parameters."
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "This rule already exists in group %s"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Get console output for instance %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Create volume of %s GB"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
@@ -1810,7 +1764,7 @@ msgstr "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Detach volume %s"
@@ -1821,7 +1775,7 @@ 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:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "attribute not supported: %s"
@@ -1853,140 +1807,140 @@ msgstr ""
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:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "Going to start terminating instances"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Reboot instance %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "De-registering image %s"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "user or group not specified"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "only group \"all\" is supported"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "operation_type must be add or remove"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "Updating image %s publicity"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "instance %s: rescued"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2026,46 +1980,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2073,63 +2067,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2139,21 +2134,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 ""
@@ -2164,6 +2163,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 ""
@@ -2183,14 +2183,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2233,13 +2233,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2248,20 +2248,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Calling getter %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2274,12 +2277,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2287,17 +2290,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Invalid signature for user %s"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Invalid signature for user %s"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2333,10 +2336,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 ""
@@ -2362,224 +2367,299 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Going to try to terminate %s"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Mountpoint cannot be translated: %s"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Mountpoint cannot be translated: %s"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "instance %s: rescued"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Going to start terminating instances"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2666,7 +2746,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2686,17 +2766,17 @@ msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2751,28 +2831,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 ""
@@ -2854,27 +2939,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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"
@@ -2923,7 +3008,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2972,7 +3057,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "Associate address %(public_ip)s to instance %(instance_id)s"
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3006,29 +3091,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Calling getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Calling getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3053,11 +3138,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 ""
@@ -3170,16 +3250,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 ""
@@ -3189,7 +3269,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "Not enough parameters to build a valid rule."
@@ -3207,16 +3287,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3230,12 +3310,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 ""
@@ -3253,174 +3333,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "instance %s: booted"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: 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:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3443,7 +3585,7 @@ msgstr "Netmask to push into openvpn config"
msgid "Launching VPN for %s"
msgstr "Launching VPN for %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Unable to locate volume %s"
@@ -3463,277 +3605,277 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "received %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "Caught error: %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "setting network host"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "start address"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "group %s already exists"
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr "start address"
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "setting network host"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Reboot instance %r"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "Unexpected error raised: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3814,251 +3956,267 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: 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:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Going to run %s instances..."
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "instance %s: booted"
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Starting snapshot for VM %s"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "Create Security Group %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Unable to destroy VBD %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Unable to destroy VBD %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "Revoke security group ingress %s"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Delete security group %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorise security group ingress %s"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revoke security group ingress %s"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4093,734 +4251,735 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Going to start terminating instances"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Going to start terminating instances"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Unexpected error raised: %s"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: 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:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Caught error: %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Going to try to terminate %s"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Detach volume %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Running instances: %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: rebooted"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "Injecting file path: '%s'"
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Going to start terminating instances"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Caught error: %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
#, fuzzy
msgid "Unrescuing"
msgstr "instance %s: unrescuing"
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: retrieving diagnostics"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "setting network host"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
#, fuzzy
msgid "Inject network info"
msgstr "setting network host"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Get console output for instance %s"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
#, fuzzy
msgid "Getting vnc console"
msgstr "Adding console"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "Adding console"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Detaching volume from unknown instance %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "instance %s: booted"
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "instance %s: booted"
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Failed to get metadata for ip: %s"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Deleting user %s"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instance %s: booted"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Deleting user %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4930,18 +5089,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5020,54 +5179,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5084,56 +5259,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5169,32 +5348,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 ""
@@ -5213,16 +5397,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"
@@ -5336,103 +5524,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq threw %s"
-#: nova/network/linux_net.py:1022
+#: 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:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "killing radvd threw %s"
-#: nova/network/linux_net.py:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Invalid backend: %s"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Starting VLAN interface %s"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: 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:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Error starting xvp: %s"
@@ -5527,32 +5715,32 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: nova/network/manager.py:1795
msgid ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
@@ -5560,7 +5748,7 @@ msgstr ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
-#: nova/network/manager.py:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5596,80 +5784,79 @@ msgstr "received %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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"
@@ -5679,68 +5866,73 @@ msgstr "setting network host"
msgid "Quantum Error creating security group %s"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5752,32 +5944,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5787,17 +5998,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 ""
@@ -5870,21 +6081,101 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "Running cmd (subprocess): %s"
+#: 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 "Result was %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Running cmd (SSH): %s"
+
+#: 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
+#, 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: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 ""
@@ -6013,63 +6304,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6098,44 +6394,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 ""
@@ -6382,7 +6678,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6391,36 +6687,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6492,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
@@ -6503,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"
@@ -6538,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 ""
@@ -6615,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 "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 ""
@@ -6707,80 +7027,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "Attempted to instantiate singleton"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6793,61 +7075,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "Running instances: %s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "After terminating instances: %s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6857,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"
@@ -6934,35 +7226,73 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7087,19 +7417,19 @@ msgstr ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7267,15 +7597,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7333,101 +7663,101 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, fuzzy, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
"instance %(inst_name)s: ignoring error injecting data into image "
"%(img_id)s (%(e)s)"
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "Failed to mount filesystem: %s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "Failed to mount filesystem: %s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, fuzzy, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
"instance %(inst_name)s: ignoring error injecting data into image "
"%(img_id)s (%(e)s)"
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7763,7 +8093,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7778,24 +8108,24 @@ msgstr "Get console output for instance %s"
msgid "Host IP address is: %s"
msgstr "Release address %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7936,50 +8266,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 ""
@@ -8119,12 +8449,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:1876
+#: 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:1883
+#: 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'"
@@ -8290,7 +8620,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8324,239 +8654,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: 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:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "instance %s: rebooted"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: 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:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8564,73 +8894,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8638,50 +8968,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8691,67 +9021,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Authentication Failure: %s"
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8784,153 +9114,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Starting Bridge interface for %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8949,7 +9279,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. "
@@ -8957,17 +9287,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,12 +9373,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9060,70 +9390,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9147,84 +9477,84 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Running cmd (subprocess): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9247,7 +9577,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 ""
@@ -9315,74 +9645,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "instance %s: booted"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "Starting Bridge interface for %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Creating a raw instance"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "instance %s: Creating image"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Creating a raw instance"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, fuzzy, python-format
msgid "Instance '%s' failed to boot"
msgstr "instance %s: rebooted"
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "instance %s: snapshotting"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "Going to run %s instances..."
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "Going to run %s instances..."
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9398,27 +9728,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 ""
@@ -9484,18 +9814,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 ""
@@ -9835,54 +10165,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -10005,107 +10335,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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"
@@ -10125,24 +10459,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: 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:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Got exception: %s"
@@ -10281,72 +10615,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: 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:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: 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:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10355,237 +10689,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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: 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:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: 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:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: 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:1521
+#: 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:1548
+#: 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:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10594,66 +10921,66 @@ msgstr ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
-#: nova/virt/xenapi/vm_utils.py:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Plugging VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: 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:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: 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:2011
+#: 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:2013
+#: 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:2015
+#: 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 "
@@ -10661,55 +10988,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: 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:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10719,203 +11053,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Creating a raw instance"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
#, fuzzy
msgid "Starting VM"
msgstr "Restarting xvp"
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Finished snapshot and upload for VM %s"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Going to start terminating instances"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "Restarting xvp"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr "kernel/ramdisk files removed"
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
#, fuzzy
msgid "Destroying VM"
msgstr "Restarting xvp"
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "setting network host"
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, 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:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10996,7 +11340,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 "
@@ -11004,7 +11348,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"
@@ -11044,16 +11388,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/en_GB/LC_MESSAGES/nova.po b/nova/locale/en_GB/LC_MESSAGES/nova.po
index d77db9924..07a2a3538 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr "Flags path: %s"
msgid "An unknown exception occurred."
msgstr "An unknown exception occurred."
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Keypair data is invalid"
@@ -184,8 +183,9 @@ msgstr "Invalid input received"
msgid "Invalid volume"
msgstr "Invalid volume"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Invalid IP protocol %(protocol)s."
@@ -944,9 +944,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1014,511 +1014,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, 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:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, 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:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Instance rollback performed due to: %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"
-msgstr ""
-
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
-msgstr ""
-
-#: nova/quota.py:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Running cmd (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Result was %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Link Local address is not found.:%s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "Invalid backend: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1603,130 +1555,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1736,69 +1683,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Invalid IP protocol %(protocol)s."
+
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Get console output for instance %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1807,7 +1760,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1817,7 +1770,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1849,138 +1802,138 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "instance %s: resuming"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
#, fuzzy
msgid "Invalid CIDR"
msgstr "Invalid cidr %(cidr)s."
@@ -2022,46 +1975,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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,63 +2062,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2135,21 +2129,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 ""
@@ -2160,6 +2158,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 ""
@@ -2179,14 +2178,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2229,13 +2228,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2244,20 +2243,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Calling getter %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2270,12 +2272,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2283,17 +2285,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2329,10 +2331,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 ""
@@ -2358,221 +2362,296 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Instance %(instance_id)s is not running."
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, 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:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Invalid volume"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2659,7 +2738,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2679,17 +2758,17 @@ msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2742,28 +2821,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 ""
@@ -2845,27 +2929,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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"
@@ -2914,7 +2998,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2962,7 +3046,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2995,29 +3079,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Calling getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Calling getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3042,11 +3126,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 ""
@@ -3158,16 +3237,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 ""
@@ -3177,7 +3256,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3194,16 +3273,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3215,12 +3294,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 ""
@@ -3238,174 +3317,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "instance %s: snapshotting"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3428,7 +3569,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Unable to locate volume %s"
@@ -3448,272 +3589,272 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "instance %s: reset network"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Rebooting instance %s"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3794,244 +3935,260 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Virtual Interface creation failed"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, 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:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Unable to destroy VBD %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Unable to destroy VBD %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4066,728 +4223,728 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "volume %s: creating export"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Get console output for instance %s"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Unable to detach volume %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "VBD not found in instance %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Invalid instance type %(instance_type)s."
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: retrieving diagnostics"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "instance %s: reset network"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Get console output for instance %s"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Detaching volume from unknown instance %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Instance %(instance_id)s is not running."
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "Instance %(instance_id)s is not running."
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Re-exporting %s volumes"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Re-exporting %s volumes"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "Invalid instance type %(instance_type)s."
+
#: nova/compute/resource_tracker.py:92
msgid ""
"Host field should not be set on the instance until resources have been "
@@ -4897,18 +5054,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4987,54 +5144,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5051,56 +5224,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 +5313,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,15 +5362,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,103 +5488,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq threw %s"
-#: nova/network/linux_net.py:1022
+#: 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:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "killing radvd threw %s"
-#: nova/network/linux_net.py:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Invalid backend: %s"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Starting VLAN interface %s"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5493,38 +5679,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5560,80 +5746,79 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5643,65 +5828,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5713,32 +5903,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5748,17 +5957,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 ""
@@ -5831,21 +6040,102 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "Running cmd (subprocess): %s"
+#: 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 "Result was %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Running cmd (SSH): %s"
+
+#: 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
+#, 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: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 ""
@@ -5974,64 +6264,69 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "An unknown exception occurred."
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "Invalid reuse of an RPC connection."
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6060,44 +6355,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,7 +6639,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6353,36 +6648,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6454,10 +6761,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 +6779,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 +6819,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 +6896,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 ""
@@ -6669,79 +6988,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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,61 +7036,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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 +7110,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,35 +7187,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7048,19 +7377,19 @@ msgstr ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7228,15 +7557,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7294,97 +7623,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7720,7 +8049,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7735,24 +8064,24 @@ msgstr "Get console output for instance %s"
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7893,50 +8222,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 ""
@@ -8076,12 +8405,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:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8247,7 +8576,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8281,237 +8610,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "volume %s: created successfully"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: 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:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8519,73 +8848,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8593,50 +8922,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8646,67 +8975,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8739,153 +9068,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Starting Bridge interface for %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8904,7 +9233,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. "
@@ -8912,17 +9241,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,12 +9327,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9015,70 +9344,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9102,84 +9431,84 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Running cmd (subprocess): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "Connection to melange failed"
@@ -9203,7 +9532,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 ""
@@ -9272,74 +9601,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "instance %s: suspending"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "Starting Bridge interface for %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Rebooting instance %s"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "Virtual Interface creation failed"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Rebooting instance %s"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "instance %s: snapshotting"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9355,27 +9684,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 ""
@@ -9441,18 +9770,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 ""
@@ -9787,54 +10116,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9957,107 +10286,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10073,24 +10406,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10229,72 +10562,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: 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:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10303,236 +10636,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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: 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:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: 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:1521
+#: 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:1548
+#: 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:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10541,66 +10867,66 @@ msgstr ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
-#: nova/virt/xenapi/vm_utils.py:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Plugging VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: 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:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: 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:2011
+#: 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:2013
+#: 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:2015
+#: 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 "
@@ -10608,55 +10934,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: 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:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10666,198 +10999,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Rebooting instance %s"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Rebooting instance %s"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, 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:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10938,7 +11281,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 "
@@ -10946,7 +11289,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 ""
@@ -10986,16 +11329,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/en_US/LC_MESSAGES/nova.po b/nova/locale/en_US/LC_MESSAGES/nova.po
index 3bdeafc46..c8194ffe0 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -85,7 +85,7 @@ msgstr "Flags path: %s"
msgid "An unknown exception occurred."
msgstr "An unknown exception occurred."
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr "Exception in string format operation"
@@ -170,8 +170,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Keypair data is invalid"
@@ -187,8 +186,9 @@ msgstr "Invalid input received"
msgid "Invalid volume"
msgstr "Invalid volume"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr "Invalid metadata"
@@ -201,7 +201,7 @@ msgstr "Invalid metadata size"
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Invalid IP protocol %(protocol)s."
@@ -977,9 +977,9 @@ msgstr "Rotation is not allowed for snapshots"
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:898 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
@@ -1050,36 +1050,32 @@ 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
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:961
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:965
#, 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:969
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:973
#, 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:977
msgid "Quota exceeded"
msgstr "Quota exceeded"
-#: nova/exception.py:988
+#: nova/exception.py:984
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
@@ -1088,41 +1084,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:989
msgid "Maximum number of floating ips exceeded"
msgstr "Maximum number of floating ips exceeded"
-#: nova/exception.py:997
+#: nova/exception.py:993
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Maximum number of floating ips exceeded"
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, 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:1001
msgid "Personality file limit exceeded"
msgstr "Personality file limit exceeded"
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr "Personality file path too long"
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr "Personality file content too long"
-#: nova/exception.py:1017
+#: nova/exception.py:1013 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:1017
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:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
@@ -1131,125 +1127,125 @@ msgstr ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, 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:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "Aggregate %(aggregate_name)s already exists."
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, 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:1038
#, 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:1043
#, 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:1047
msgid "Unable to create instance type"
msgstr "Unable to create instance type"
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, 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:1057
#, 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:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, 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:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, 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:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr "Invalid id: %(val)s (expecting \"i-...\")."
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, 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:1103
#, 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:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "Instance %(instance_uuid)s is locked"
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, 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:1116
#, 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:1121
#, 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:1125
#, 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:1129
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
@@ -1258,11 +1254,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:1135
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:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
@@ -1271,70 +1267,109 @@ msgstr ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, 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:1153
+#, fuzzy, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+
+#: nova/exception.py:1158
#, 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:1161
+#: nova/exception.py:1162
#, 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:1165
+#: nova/exception.py:1166
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "set_admin_password is not implemented by this driver."
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, 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:1197
+#: nova/exception.py:1198
#, 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:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "Instance Type with name %(name)s already exists."
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Expected object of type: %s"
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1345,7 +1380,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 ..."
@@ -1366,208 +1401,127 @@ 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:142
+#: nova/utils.py:146
#, 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:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Running cmd (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr "Environment not supported over SSH"
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr "process_input not supported over SSH"
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Result was %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Link Local address is not found.:%s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "Invalid backend: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "Unknown base file: %s"
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr "Expected object of type: %s"
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr "Invalid server_string: %s"
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc: '%(name)s' took %(total_time).2f secs"
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr "Reloading cached file %s"
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr "Could not remove tmpdir: %s"
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "Server name is not a string or unicode"
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, 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:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1652,7 +1606,7 @@ msgstr "FaultWrapper: %s"
msgid "Too many failed authentications."
msgstr "Too many failed authentications."
-#: nova/api/ec2/__init__.py:184
+#: nova/api/ec2/__init__.py:183
#, python-format
msgid ""
"Access key %(access_key)s has had %(failures)d failed authentications and"
@@ -1661,124 +1615,119 @@ msgstr ""
"Access key %(access_key)s has had %(failures)d failed authentications and"
" will be locked out for %(lock_mins)d minutes."
-#: nova/api/ec2/__init__.py:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr "Signature not provided"
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr "Access key not provided"
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr "Failure communicating with keystone"
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Live Migration failure: %(e)s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Too many failed authentications."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "action: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr "arg: %(key)s\t\tval: %(value)s"
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr "Unauthorized request for controller=%(controller)s and action=%(action)s"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr "InstanceNotFound raised: %s"
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr "VolumeNotFound raised: %s"
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr "SnapshotNotFound raised: %s"
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "NotFound raised: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr "EC2APIError raised: %s"
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr "KeyPairExists raised: %s"
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, fuzzy, python-format
msgid "InvalidKeypair raised: %s"
msgstr "InvalidRequest raised: %s"
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr "InvalidParameterValue raised: %s"
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr "InvalidPortRange raised: %s"
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr "NotAuthorized raised: %s"
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr "InvalidRequest raised: %s"
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr "QuotaError raised: %s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr "Invalid id: bogus (expecting \"i-...\"): %s"
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "Unexpected error raised: %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr "Environment: %s"
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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 "An unknown error has occurred. Please try your request again."
-#: nova/api/ec2/apirequest.py:62
+#: 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"
@@ -1788,69 +1737,75 @@ msgstr "Unsupported API request: controller = %(controller)s, action = %(action)
msgid "Create snapshot of volume %s"
msgstr "Create snapshot of volume %s"
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr "Could not find key pair(s): %s"
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Create key pair %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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."
-#: nova/api/ec2/cloud.py:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr "Import key %s"
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Delete key pair %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
msgid "Not enough parameters, need group_name or group_id"
msgstr "Not enough parameters, need group_name or group_id"
-#: nova/api/ec2/cloud.py:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr "%s Not enough parameters to build a valid rule"
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Invalid IP protocol %(protocol)s."
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
msgid "No rule for the specified parameters."
msgstr "No rule for the specified parameters."
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr "%s - This rule already exists in group"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Get console output for instance %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr "Create volume from snapshot %s"
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Create volume of %s GB"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr "Delete Failed"
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
@@ -1859,7 +1814,7 @@ msgstr "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgid "Attach Failed."
msgstr "Attach Failed."
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Detach volume %s"
@@ -1869,7 +1824,7 @@ 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:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "attribute not supported: %s"
@@ -1901,100 +1856,100 @@ msgstr "Unable to release IP Address."
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:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Unable to associate IP Address, no fixed_ips."
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr "Floating ip is already associated."
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr "l3driver call to add floating ip failed."
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr "Error, unable to associate floating ip."
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr "Floating ip is not associated."
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: 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:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr "Image must be available"
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "Going to start terminating instances"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Reboot instance %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr "Going to stop instances"
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr "Going to start instances"
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "De-registering image %s"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr "imageLocation is required"
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "user or group not specified"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "only group \"all\" is supported"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "operation_type must be add or remove"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "Updating image %s publicity"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, 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:1619
+#: nova/api/ec2/cloud.py:1621
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
@@ -2003,40 +1958,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:1649
+#: nova/api/ec2/cloud.py:1652
#, 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:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr "image of %(instance)s at %(now)s"
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
#, fuzzy
msgid "Expecting a list of resources"
msgstr "Getting list of instances"
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "instance not present"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "Getting list of instances"
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr "Invalid CIDR"
@@ -2077,36 +2032,36 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
#, fuzzy
msgid "Invalid proxy request signature."
msgstr "Invalid request: %s"
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: 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:182 nova/api/openstack/__init__.py:292
+#: 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 "
@@ -2115,11 +2070,51 @@ msgstr ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
-#: nova/api/openstack/__init__.py:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2129,63 +2124,64 @@ msgstr ""
"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
"Bad upgrade or db corrupted?"
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
msgid "limit param must be an integer"
msgstr "limit param must be an integer"
-#: nova/api/openstack/common.py:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr "limit param must be positive"
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr "offset param must be an integer"
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr "offset param must be positive"
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr "marker [%s] not found"
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr "href %s does not contain version"
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr "Image metadata limit exceeded"
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr "Image metadata key cannot be blank"
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr "Image metadata key too long"
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr "Invalid image metadata"
-#: nova/api/openstack/common.py:361
+#: nova/api/openstack/common.py:362
#, python-format
msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
msgstr "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
-#: nova/api/openstack/common.py:364
-#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+#: nova/api/openstack/common.py:366
+#, fuzzy, python-format
+msgid "Instance is in an invalid state for '%s'"
msgstr "Instance is in an invalid state for '%(action)s'"
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr "Rejecting snapshot request, snapshots currently disabled"
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr "Instance snapshots are not permitted at this time."
@@ -2195,21 +2191,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"
@@ -2220,6 +2220,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"
@@ -2239,14 +2240,14 @@ 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:346
+#: 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
-#, python-format
-msgid "Failed to load extension %(ext_name)s: %(exc)s"
+#: 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"
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2289,13 +2290,13 @@ 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:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr "Malformed request body"
@@ -2304,20 +2305,23 @@ msgstr "Malformed request body"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Calling setter %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Unsupported Content-Type"
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2330,12 +2334,12 @@ msgstr "element is not a child"
msgid "root element selecting a list"
msgstr "root element selecting a list"
-#: nova/api/openstack/xmlutil.py:744
+#: nova/api/openstack/xmlutil.py:742
#, python-format
msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
msgstr "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
-#: nova/api/openstack/xmlutil.py:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr "subclasses must implement construct()!"
@@ -2343,17 +2347,17 @@ msgstr "subclasses must implement construct()!"
msgid "Initializing extension manager."
msgstr "Initializing extension manager."
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Invalid is_public filter [%s]"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Invalid minRam filter [%s]"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr "Invalid minDisk filter [%s]"
@@ -2389,10 +2393,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"
@@ -2420,223 +2426,298 @@ msgstr "Server does not exist"
msgid "Metadata item was not found"
msgstr "Metadata item was not found"
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr "Invalid changes-since value"
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr "Only administrators may list deleted instances"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Host '%s' could not be found."
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr "Instance could not be found"
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr "Bad personality format: missing %s"
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr "Bad personality format"
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr "Personality content for %s cannot be decoded"
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr "Unknown argment : port"
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, 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:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, 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:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "Invalid fixed IP address (%s)"
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Duplicate networks (%s) are not allowed"
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr "Bad network format: missing %s"
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr "Bad networks format"
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr "Userdata content cannot be decoded"
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr "accessIPv4 is not proper IPv4 format"
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr "accessIPv6 is not proper IPv6 format"
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr "Server name is not defined"
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr "Invalid flavorRef provided."
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr "min_count must be an integer value"
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr "min_count must be > 0"
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr "max_count must be an integer value"
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr "max_count must be > 0"
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr "min_count must be <= max_count"
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr "Can not find requested image"
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr "Invalid key_name provided."
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr "HostId cannot be updated."
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "HostId cannot be updated."
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr "Instance has not been resized."
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, 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:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
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:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr "Missing argument 'type' for reboot"
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr "Unable to locate requested flavor."
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr "Resize requires a flavor change."
-#: nova/api/openstack/compute/servers.py:1118
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, 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:1216
msgid "Missing imageRef attribute"
msgstr "Missing imageRef attribute"
-#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr "Invalid imageRef provided."
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr "Missing flavorRef attribute"
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr "No adminPass was specified"
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr "Invalid adminPass"
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Failed to soft reboot instance."
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr "Unable to parse metadata key/value pairs."
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "Resize request has invalid 'flavorRef' attribute."
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr "Resize requests require 'flavorRef' attribute."
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr "Invalid request body"
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr "Could not parse imageRef from request."
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr "Cannot find image for rebuild"
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr "createImage entity requires name attribute"
-#: nova/api/openstack/compute/servers.py:1409
-#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, fuzzy, python-format
+msgid "Removing options '%s' from query"
msgstr "Removing options '%(unk_opt_str)s' from query"
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2724,7 +2805,7 @@ msgstr "host and block_migration must be specified."
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, fuzzy, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr "Live migration of instance %(id)s to host %(host)s failed"
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2743,18 +2824,18 @@ msgid "Compute.api::resetState %s"
msgstr "Compute.api::resetState %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
-#, python-format
-msgid "Cannot show aggregate: %(id)s"
+#, fuzzy, python-format
+msgid "Cannot show aggregate: %s"
msgstr "Cannot show aggregate: %(id)s"
#: nova/api/openstack/compute/contrib/aggregates.py:115
-#, python-format
-msgid "Cannot update aggregate: %(id)s"
+#, fuzzy, python-format
+msgid "Cannot update aggregate: %s"
msgstr "Cannot update aggregate: %(id)s"
#: nova/api/openstack/compute/contrib/aggregates.py:127
-#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+#, fuzzy, python-format
+msgid "Cannot delete aggregate: %s"
msgstr "Cannot delete aggregate: %(id)s"
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2810,30 +2891,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 ""
@@ -2917,28 +3003,28 @@ msgstr "Network does not have %s action"
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr "%s must be either 'MANUAL' or 'AUTO'."
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
#, fuzzy
msgid "host and onSharedStorage must be specified."
msgstr "host and block_migration must be specified."
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, fuzzy, python-format
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"
@@ -2987,7 +3073,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:437
msgid "Missing parameter dict"
msgstr "Missing parameter dict"
@@ -3036,7 +3122,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "Floating ip %(address)s is not associated."
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3070,32 +3156,32 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr "Putting host %(host)s in maintenance mode %(mode)s."
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: nova/api/openstack/compute/contrib/hosts.py:211
#, fuzzy
msgid "Virt driver does not implement host maintenance mode."
msgstr "Virt driver does not implement uptime function."
-#: nova/api/openstack/compute/contrib/hosts.py:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Calling setter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Updating host stats"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: nova/api/openstack/compute/contrib/hosts.py:231
#, fuzzy
msgid "Virt driver does not implement host disabled status."
msgstr "Virt driver does not implement uptime function."
-#: nova/api/openstack/compute/contrib/hosts.py:246
+#: nova/api/openstack/compute/contrib/hosts.py:247
#, fuzzy
msgid "Virt driver does not implement host power management."
msgstr "Virt driver does not implement uptime function."
-#: nova/api/openstack/compute/contrib/hosts.py:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr "Describe-resource is admin only functionality"
@@ -3120,11 +3206,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"
@@ -3240,16 +3321,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"
@@ -3259,7 +3340,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "Not enough parameters to build a valid rule."
@@ -3278,16 +3359,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:356
#, 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:440
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:444
msgid "Security group name cannot be empty"
msgstr "Security group name cannot be empty"
@@ -3299,12 +3380,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"
@@ -3323,174 +3404,236 @@ msgstr "vol=%s"
msgid "Delete volume with id: %s"
msgstr "Delete volume with id: %s"
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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 "Instance %s is not attached."
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: nova/api/openstack/compute/contrib/volumes.py:380
#, fuzzy, python-format
msgid "Bad volumeId format: volumeId is not in proper format (%s)"
msgstr "Bad port format: port uuid is not in proper format (%s)"
-#: nova/api/openstack/compute/contrib/volumes.py:396
+#: 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 "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
-#: nova/api/openstack/compute/contrib/volumes.py:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr "Delete snapshot with id: %s"
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr "Create snapshot from volume %s"
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, fuzzy, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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"
-#: nova/cells/messaging.py:203
+#: nova/cells/messaging.py:204
#, fuzzy, python-format
msgid "Error processing message locally: %(exc)s"
msgstr "Error processing message. Skipping it."
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: 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:503
+#: 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:523
+#: 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:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: 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:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3512,7 +3655,7 @@ msgstr "Netmask to push into openvpn config"
msgid "Launching VPN for %s"
msgstr "Launching VPN for %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Failed to create VM %s"
@@ -3532,282 +3675,282 @@ msgstr "element is not a child"
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
#, fuzzy
msgid "leasing ip"
msgstr "Creating vifs"
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
#, fuzzy
msgid "releasing ip"
msgstr "Creating vifs"
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "received %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "DB error: %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "Reset network"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "start address"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
#, fuzzy
msgid "No fixed IP found."
msgstr "Zero fixed ips could be found."
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, fuzzy, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr "No fixed ips associated to instance"
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "Floating ip %(address)s already exists."
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr "id"
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr "IPv4"
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr "IPv6"
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr "start address"
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr "DNS1"
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr "DNS2"
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr "VlanID"
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr "project"
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr "uuid"
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "Network not found"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
#, fuzzy
msgid "UUID is required to delete Quantum Networks"
msgstr "%(req)s is required to create a network."
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "stop instance"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "Service %(service_id)s could not be found."
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "Service %(service_id)s could not be found."
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "Unexpected error: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
#, fuzzy
msgid "PROJECT"
msgstr "project"
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3891,16 +4034,26 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: 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:297
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
@@ -3909,7 +4062,7 @@ msgstr ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
-#: nova/compute/api.py:317
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
@@ -3918,93 +4071,93 @@ msgstr ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
-#: nova/compute/api.py:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr "Metadata property key blank"
-#: nova/compute/api.py:331
+#: 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:335
+#: 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:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Going to run %s instances..."
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, 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:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, 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:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr "Going to try to soft delete instance"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr "Going to try to terminate instance"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr "Going to try to stop instance"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr "Going to try to start instance"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr "Searching by: %s"
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr "snapshot for %s"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr "flavor_id is None. Assuming migration."
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -4013,62 +4166,63 @@ msgstr ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, 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:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr "Locking"
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr "Unlocking"
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr "Volume must be attached in order to detach."
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, 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:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr "Keypair name contains unsafe characters"
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, 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:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr "Security group %s cannot be empty."
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
@@ -4077,67 +4231,72 @@ msgstr ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, 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:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr "Quota exceeded, too many security groups."
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "Create Security Group %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr "Security group %s already exists"
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Unable to destroy vbd %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Unable to destroy vbd %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr "Security group is still in use"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr "Failed to update usages deallocating security group"
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Delete security group %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr "Rule (%s) not found"
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr "Quota exceeded, too many security group rules."
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorize security group ingress %s"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revoke security group ingress %s"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr "Security group id should be integer"
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr "Aborting claim: %s"
@@ -4174,330 +4333,317 @@ msgstr ""
#: nova/compute/claims.py:162
#, fuzzy, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr "Total VCPUs: %(total_vcpus)d, used: %(used_vcpus)d"
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, fuzzy, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr "Disk limit not specified, defaulting to unlimited"
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, fuzzy, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr "Disk limit: %(disk_gb_limit)d GB, free: %(free_disk_gb)d GB"
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, fuzzy, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
"Unable to claim resources. Free CPU %(free_vcpus)d < requested CPU "
"%(vcpus)d"
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr "names can only contain [a-zA-Z0-9_.- ]"
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, fuzzy, python-format
-msgid "'%s' argument must be a positive integer"
-msgstr "create arguments must be positive integers"
+msgid "'%s' argument must be greater than 0"
+msgstr "Volume size '%s' must be an integer and greater than 0"
+
+#: nova/compute/flavors.py:108
+#, fuzzy, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr "Volume size '%s' must be an integer and greater than 0"
-#: nova/compute/flavors.py:113
+#: nova/compute/flavors.py:117
#, fuzzy
msgid "'rxtx_factor' argument must be a positive float"
msgstr "create arguments must be positive integers"
-#: nova/compute/flavors.py:121
-#, fuzzy, python-format
-msgid "'%s' argument must be greater than 0"
-msgstr "Volume size '%s' must be an integer and greater than 0"
-
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr "DB error: %s"
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr "Instance type %s not found for deletion"
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr "Possibly task preempted."
-#: nova/compute/manager.py:364
+#: 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:393
+#: nova/compute/manager.py:392
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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Failed to terminate instance"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr "Rebooting instance after nova-compute restart."
-#: nova/compute/manager.py:563
+#: 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:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Failed to suspend instance"
-#: nova/compute/manager.py:578
+#: 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:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Unexpected status code"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "Checking state"
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr "Setting up bdm %s"
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, fuzzy, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr "Memory limit not specified, defaulting to unlimited"
-#: nova/compute/manager.py:949
+#: 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:955
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "Instance failed to spawn"
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "DB error: %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr "Error trying to reschedule"
-#: nova/compute/manager.py:1038
+#: 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:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr "No request spec, will not reschedule"
-#: nova/compute/manager.py:1049
+#: 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:1078
+#: 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:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "Starting instance..."
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "Instance network_info: |%s|"
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "Instance failed block device setup"
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "Instance failed to spawn"
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "Deallocating network for instance"
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s instance"
-
-#: nova/compute/manager.py:1342
+#: 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:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "Ignoring VolumeNotFound: %s"
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "terminating bdm %s"
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr "Ignoring volume cleanup failure due to %s"
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s. Setting instance vm_state to ERROR"
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr "Rebuilding instance"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, 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:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Attach boot from volume failed: %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr "Rebooting instance"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
@@ -4506,21 +4652,21 @@ msgstr ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Cannot reboot instance: %(exc)s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: rebooted"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr "instance snapshotting"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
@@ -4529,45 +4675,45 @@ msgstr ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "Found %(num_images)d images (rotation: %(rotation)d)"
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr "Rotating out %d backups"
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr "Deleting image %s"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, 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:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr "Root password set"
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
#, 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:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr "set_admin_password failed: %s"
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr "error setting admin password"
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
@@ -4576,111 +4722,116 @@ msgstr ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
-#: nova/compute/manager.py:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr "injecting file to %(path)s"
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr "Rescuing"
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Error trying to reschedule"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "DB error: %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr "Unrescuing"
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr "Changing instance metadata according to %(diff)r"
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Setting instance to %(state)s state."
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "Instance has no volume."
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr "destination same as source!"
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr "Migrating"
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, 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:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr "Pausing"
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr "Unpausing"
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr "Retrieving diagnostics"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr "Resuming"
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr "Reset network"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr "Inject network info"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr "network_info to inject: |%s|"
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr "Get console output"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr "Getting vnc console"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "Getting vnc console"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, 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:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr "Attaching volume %(volume_id)s to %(mountpoint)s"
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
@@ -4689,59 +4840,59 @@ msgstr ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, 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:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr "Detaching volume from unknown instance"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, fuzzy, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr "allocate_for_instance() for %s"
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Port %(port_id)s is still in use."
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Host %(host)s could not be found."
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr "Pre live migration failed at %(dest)s"
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr "_post_live_migration() is started.."
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr "Migrating instance to %(dest)s finished successfully."
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4749,20 +4900,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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr "Post operation of migration started"
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Failed to get info for disk %s"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr "Updated the info_cache for instance"
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
@@ -4771,12 +4922,12 @@ msgstr ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, 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:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
@@ -4785,26 +4936,26 @@ msgstr ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "Instance %(instance_uuid)s not found"
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr "In ERROR state"
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, 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:3612
+#: nova/compute/manager.py:3669
#, 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:3629
+#: nova/compute/manager.py:3686
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
@@ -4813,25 +4964,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:3648
+#: nova/compute/manager.py:3705
#, 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:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr "Updating bandwidth usage cache"
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Updating bandwidth usage cache"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr "Updating host status"
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4840,11 +4991,11 @@ msgstr ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
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:3875
+#: nova/compute/manager.py:3917
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
@@ -4853,57 +5004,57 @@ msgstr ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
-#: nova/compute/manager.py:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr "Instance shutdown by itself. Calling the stop API."
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr "error during stop() in sync_power_state."
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
#, 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:3945
+#: nova/compute/manager.py:3987
#, fuzzy
msgid "Instance is paused unexpectedly. Ignore."
msgstr "Instance is paused or suspended unexpectedly. Calling the stop API."
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr "Instance is not stopped. Calling the stop API."
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr "Instance is not (soft-)deleted."
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0, skipping..."
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr "Reclaiming deleted instance"
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Loading compute driver '%s'"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 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:4079
+#: nova/compute/manager.py:4113
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
@@ -4912,7 +5063,7 @@ msgstr ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
-#: nova/compute/manager.py:4086
+#: nova/compute/manager.py:4120
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
@@ -4921,11 +5072,16 @@ msgstr ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
-#: nova/compute/manager.py:4093
+#: nova/compute/manager.py:4127
#, 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:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "Setting instance to %(state)s state."
+
#: nova/compute/resource_tracker.py:92
#, fuzzy
msgid ""
@@ -5045,18 +5201,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:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5137,56 +5293,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5203,56 +5375,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:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 +5468,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 +5517,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"
@@ -5466,17 +5652,17 @@ msgstr "This driver only supports type 'a' entries."
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr "Attempted to remove chain %s which does not exist"
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr "Unknown chain: %r"
-#: nova/network/linux_net.py:280
+#: nova/network/linux_net.py:279
#, python-format
msgid ""
"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
@@ -5485,86 +5671,86 @@ msgstr ""
"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
"%(top)r"
-#: nova/network/linux_net.py:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr "IPTablesManager.apply completed with success"
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr "arping error for ip %s"
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq threw %s"
-#: nova/network/linux_net.py:1022
+#: 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:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "killing radvd threw %s"
-#: nova/network/linux_net.py:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Invalid mode: '%s'"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Starting VLAN interface %s"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Starting bridge %s "
-#: nova/network/linux_net.py:1459
+#: 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:1495
+#: 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:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr "Starting bridge %s "
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr "Done starting bridge %s"
@@ -5665,16 +5851,16 @@ msgstr ""
"Subnet(s) too large, defaulting to /%s. To override, specify "
"network_size flag."
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr "cidr already in use"
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
@@ -5683,16 +5869,16 @@ msgstr ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr "Network already exists!"
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr "Network must be disassociated from project %s before delete"
-#: nova/network/manager.py:1794
+#: nova/network/manager.py:1795
msgid ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
@@ -5700,7 +5886,7 @@ msgstr ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
-#: nova/network/manager.py:1801
+#: nova/network/manager.py:1802
#, fuzzy, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5738,80 +5924,80 @@ msgstr "_delete: %s"
msgid "Cannot delete domain |%s|"
msgstr "Cannot delete aggregate: %(id)s"
-#: nova/network/model.py:375
+#: 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 +6007,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:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5896,32 +6087,52 @@ 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"
msgstr "foreign key could not be dropped"
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr "Could not release the acquired lock `%s`"
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
-#: nova/openstack/common/lockutils.py:195
+#: nova/openstack/common/lockutils.py:199
#, python-format
msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
msgstr "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
-#: nova/openstack/common/lockutils.py:222
+#: nova/openstack/common/lockutils.py:226
#, python-format
msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
-#: nova/openstack/common/lockutils.py:230
+#: nova/openstack/common/lockutils.py:234
#, fuzzy, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
@@ -5931,17 +6142,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"
@@ -6016,21 +6227,102 @@ msgstr "Got unknown keyword args to utils.execute: %r"
msgid "Running cmd (subprocess): %s"
msgstr "Running cmd (subprocess): %s"
+#: 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 "Result was %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr "%r failed. Retrying."
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Running cmd (SSH): %s"
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr "Environment not supported over SSH"
+
+#: nova/openstack/common/processutils.py:225
+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: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."
@@ -6162,11 +6454,11 @@ msgstr "Making asynchronous fanout cast..."
msgid "Sending %(event_type)s on %(topic)s"
msgstr "Sending %(event_type)s on %(topic)s"
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr "An unknown RPC related exception occurred."
-#: nova/openstack/common/rpc/common.py:104
+#: nova/openstack/common/rpc/common.py:105
#, python-format
msgid ""
"Remote error: %(exc_type)s %(value)s\n"
@@ -6175,53 +6467,58 @@ msgstr ""
"Remote error: %(exc_type)s %(value)s\n"
"%(traceback)s."
-#: nova/openstack/common/rpc/common.py:121
+#: 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:137
#: nova/openstack/common/rpc/common.py:138
#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
#, fuzzy
msgid "<unknown>"
msgstr "Unknown"
-#: nova/openstack/common/rpc/common.py:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "Invalid reuse of an RPC connection."
-#: nova/openstack/common/rpc/common.py:151
+#: nova/openstack/common/rpc/common.py:152
#, python-format
msgid "Specified RPC version, %(version)s, not supported by this endpoint."
msgstr "Specified RPC version, %(version)s, not supported by this endpoint."
-#: nova/openstack/common/rpc/common.py:156
+#: nova/openstack/common/rpc/common.py:157
#, fuzzy, python-format
msgid ""
"Specified RPC envelope version, %(version)s, not supported by this "
"endpoint."
msgstr "Specified RPC version, %(version)s, not supported by this endpoint."
-#: nova/openstack/common/rpc/common.py:280
+#: 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:302
+#: 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."
@@ -6254,44 +6551,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."
@@ -6537,7 +6834,7 @@ msgstr "Driver must implement schedule_run_instance"
msgid "Driver must implement select_hosts"
msgstr "Driver must implement schedule_run_instance"
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6547,20 +6844,32 @@ msgstr ""
"memory(host:%(avail)s <= instance:%(mem_inst)s)"
#: nova/scheduler/filter_scheduler.py:73
-#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+#, fuzzy, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr "Attempting to build %(num_instances)d instance(s)"
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, fuzzy, python-format
+msgid "Request Spec: %s"
+msgstr "Request: %s"
+
+#: 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: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:244
+#: 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:276
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
@@ -6569,17 +6878,17 @@ msgstr ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
-#: nova/scheduler/filter_scheduler.py:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "Filtered %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:357
-#, python-format
-msgid "Choosing host %(chosen_host)s"
-msgstr ""
+#: nova/scheduler/filter_scheduler.py:361
+#, fuzzy, python-format
+msgid "Weighed %(hosts)s"
+msgstr "Filtered %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6653,10 +6962,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
@@ -6664,6 +6980,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"
@@ -6705,7 +7026,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"
@@ -6714,7 +7035,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"
@@ -6790,47 +7111,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 ""
@@ -6883,82 +7204,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "Attempted to instantiate singleton"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr "Faking execution of cmd (subprocess): %s"
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr "Faked command matched %s"
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr "Faked command raised an exception %s"
-#: nova/tests/fake_utils.py:101
+#: nova/tests/fake_processutils.py:100
#, python-format
msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
msgstr "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
-#: nova/tests/fake_volume.py:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr "status must be available"
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr "already attached"
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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"
@@ -6971,7 +7252,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:3466
+#: 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"
@@ -6979,56 +7261,67 @@ 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:3471
+#: 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:3476
+#: 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"
-#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "Running instances: %s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "After terminating instances: %s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr "Internal error"
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr "After force-killing instances: %s"
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
#, fuzzy
msgid "spawn error"
msgstr "unknown guestmount error"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -7038,22 +7331,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"
@@ -7121,35 +7414,74 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+#, fuzzy
+msgid "Unable to load the virtualization driver"
msgstr "Unable to load the virtualization driver: %s"
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7275,19 +7607,19 @@ msgstr ""
" stdout: %(out)s\n"
" stderr: %(err)s"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7458,15 +7790,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7525,41 +7857,41 @@ msgstr "partition %s not found"
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr "image already mounted"
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, fuzzy, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr "Ignoring error injecting data into image %(img_id)s (%(e)s)"
-#: nova/virt/disk/api.py:319
+#: nova/virt/disk/api.py:321
#, python-format
msgid ""
"Failed to mount container filesystem '%(image)s' on '%(target)s': "
@@ -7568,56 +7900,56 @@ msgstr ""
"Failed to mount container filesystem '%(image)s' on '%(target)s': "
"%(errors)s"
-#: nova/virt/disk/api.py:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "Failed to unmount container filesystem: %s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "Failed to unmount container filesystem: %s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, fuzzy, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr "Ignoring error injecting data into image %(img_id)s (%(e)s)"
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr "Not implemented on Windows"
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr "User %(username)s not found in password file."
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr "User %(username)s not found in shadow file."
@@ -7956,7 +8288,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:3835
+#: 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"
@@ -7971,24 +8303,24 @@ msgstr "get_console_output called"
msgid "Host IP address is: %s"
msgstr "Release address %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: nova/virt/hyperv/imagecache.py:84
#, fuzzy, python-format
msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
msgstr "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
-#: nova/virt/hyperv/imagecache.py:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -8133,12 +8465,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 "
@@ -8147,22 +8479,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 "
@@ -8171,16 +8503,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 ""
@@ -8323,12 +8655,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Using config drive"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: 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"
@@ -8487,7 +8819,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:902
+#: 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"
@@ -8521,215 +8853,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr "During wait destroy, instance disappeared."
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr "Instance destroyed successfully."
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Going to stop instances"
-#: nova/virt/libvirt/driver.py:786
+#: 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:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: 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:865
+#: 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:908
+#: 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:915
+#: 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:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr "During detach_volume, instance disappeared."
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "No networks defined."
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
#, fuzzy
msgid "During detach_interface, instance disappeared."
msgstr "During detach_volume, instance disappeared."
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "No networks defined."
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr "Instance soft rebooted successfully."
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr "Failed to soft reboot instance."
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr "Instance shutdown successfully."
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr "Instance rebooted successfully."
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr "Instance is running"
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: 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:1560
+#: 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:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: 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:1681
+#: 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:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "Creating image"
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr "Using config drive"
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
@@ -8738,20 +9070,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:1989
+#: 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:1993
+#: 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:1997
+#: 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:2013
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
@@ -8759,7 +9091,7 @@ msgstr ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
-#: nova/virt/libvirt/driver.py:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8767,12 +9099,12 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
@@ -8781,27 +9113,27 @@ msgstr ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: 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:2567
+#: 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:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: nova/virt/libvirt/driver.py:2594
#, fuzzy
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
@@ -8810,35 +9142,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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: 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:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8846,21 +9178,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8869,15 +9201,15 @@ msgstr ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
-#: nova/virt/libvirt/driver.py:3002
+#: 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:3010
+#: 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:3047
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
@@ -8886,7 +9218,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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
@@ -8895,7 +9227,7 @@ msgstr ""
"Instance launched has CPU info:\n"
"%s"
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8910,7 +9242,7 @@ msgstr ""
"\n"
"Refer to %(u)s"
-#: nova/virt/libvirt/driver.py:3101
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8919,22 +9251,22 @@ msgstr ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
-#: nova/virt/libvirt/driver.py:3149
+#: 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:3221
+#: 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:3314
+#: 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:3426
+#: nova/virt/libvirt/driver.py:3447
#, fuzzy, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
@@ -8943,38 +9275,38 @@ msgstr ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:3443
+#: 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:3448
+#: 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:3489
+#: 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:3558
+#: 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:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr "Instance running successfully."
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr "Starting finish_migration"
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr "Starting finish_revert_migration"
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, fuzzy, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr "Deleting instance files %(target)s"
@@ -9009,46 +9341,46 @@ 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:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr "Unknown image_type=%s"
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr "Error reading image info file %(filename)s: %(error)s"
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr "Reading image info file: %s"
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Writing image info file: %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr "%s is a valid instance name"
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr "%s has a disk file"
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr "Instance %(instance)s is backed by %(backing)s"
-#: nova/virt/libvirt/imagecache.py:350
+#: nova/virt/libvirt/imagecache.py:347
#, python-format
msgid ""
"Instance %(instance)s is using a backing file %(backing)s which does not "
@@ -9057,49 +9389,49 @@ msgstr ""
"Instance %(instance)s is using a backing file %(backing)s which does not "
"appear in the image service"
-#: nova/virt/libvirt/imagecache.py:426
+#: nova/virt/libvirt/imagecache.py:422
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image verification failed"
msgstr "%(id)s (%(base_file)s): image verification failed"
-#: nova/virt/libvirt/imagecache.py:436
+#: nova/virt/libvirt/imagecache.py:432
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): image verification skipped, no hash "
"stored"
msgstr "%(id)s (%(base_file)s): image verification skipped, no hash stored"
-#: nova/virt/libvirt/imagecache.py:445
+#: nova/virt/libvirt/imagecache.py:441
#, fuzzy, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr "%(id)s (%(base_file)s): checking"
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr "Cannot remove %(base_file)s, it does not exist"
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr "Base file too young to remove: %s"
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr "Removing base file: %s"
-#: nova/virt/libvirt/imagecache.py:482
+#: nova/virt/libvirt/imagecache.py:478
#, python-format
msgid "Failed to remove %(base_file)s, error was %(error)s"
msgstr "Failed to remove %(base_file)s, error was %(error)s"
-#: nova/virt/libvirt/imagecache.py:493
+#: nova/virt/libvirt/imagecache.py:489
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr "%(id)s (%(base_file)s): checking"
-#: nova/virt/libvirt/imagecache.py:517
+#: nova/virt/libvirt/imagecache.py:513
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
@@ -9108,7 +9440,7 @@ msgstr ""
"%(id)s (%(base_file)s): in use: on this node %(local)d local, %(remote)d "
"on other nodes"
-#: nova/virt/libvirt/imagecache.py:529
+#: nova/virt/libvirt/imagecache.py:525
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
@@ -9117,51 +9449,51 @@ msgstr ""
"%(id)s (%(base_file)s): warning -- an absent base file is in use! "
"instances: %(instance_list)s"
-#: nova/virt/libvirt/imagecache.py:541
+#: nova/virt/libvirt/imagecache.py:537
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image is not in use"
msgstr "%(id)s (%(base_file)s): image is not in use"
-#: nova/virt/libvirt/imagecache.py:548
+#: nova/virt/libvirt/imagecache.py:544
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image is in use"
msgstr "%(id)s (%(base_file)s): image is in use"
-#: nova/virt/libvirt/imagecache.py:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr "Skipping verification, no base directory at %s"
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr "Verify base images"
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr "Image id %(id)s yields fingerprint %(fingerprint)s"
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr "Unknown base file: %s"
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr "Active base files: %s"
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr "Corrupt base files: %s"
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr "Removable base files: %s"
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr "Verification complete"
@@ -9182,7 +9514,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. "
@@ -9193,17 +9525,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"
@@ -9279,12 +9611,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr "iSCSI device not found at %s"
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, fuzzy, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9298,43 +9630,43 @@ msgstr ""
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:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: 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:548
+#: 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:562
+#: 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:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: 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:712
+#: nova/virt/libvirt/volume.py:726
#, fuzzy, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
@@ -9343,30 +9675,30 @@ msgstr ""
"ISCSI volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
-#: nova/virt/libvirt/volume.py:728
+#: 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)"
-#: nova/virt/libvirt/volume.py:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9390,84 +9722,84 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr "Connection error connecting PowerVM manager"
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Running cmd (subprocess): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr "File transfer to PowerVM manager failed"
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "File transfer to PowerVM manager failed"
@@ -9491,7 +9823,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 ""
@@ -9563,74 +9895,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr "LPAR instance '%s' not found"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr "PowerVM image creation failed: %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Creating LPAR instance '%s'"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "LPAR instance '%s' creation failed"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Activating the LPAR instance '%s'"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr "Instance '%s' failed to boot"
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, fuzzy, python-format
msgid "Instance spawned in %s seconds"
msgstr "instance %s spawned successfully"
-#: nova/virt/powervm/operator.py:253
+#: nova/virt/powervm/operator.py:252
#, python-format
msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
msgstr "During destroy, LPAR instance '%s' was not found on PowerVM system."
-#: nova/virt/powervm/operator.py:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "instance snapshotting"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr "Shutting down the instance '%s'"
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "Deleting the LPAR instance '%s'"
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr "PowerVM instance cleanup failed"
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
msgid "Not enough free memory in the host"
msgstr "Not enough free memory in the host"
-#: nova/virt/powervm/operator.py:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr "Insufficient available CPU on PowerVM"
@@ -9649,27 +9981,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"
@@ -9736,7 +10068,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"
@@ -9744,12 +10076,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"
@@ -10116,56 +10448,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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"
@@ -10288,12 +10620,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
@@ -10302,12 +10634,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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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. "
@@ -10316,67 +10648,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"
@@ -10384,7 +10716,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"
@@ -10392,11 +10724,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"
@@ -10415,24 +10751,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr "Failure while cleaning up attached VDIs"
-#: nova/virt/xenapi/driver.py:354
+#: 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:570
+#: 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:630
+#: 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:670
+#: 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:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Got exception: %s"
@@ -10577,74 +10913,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:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr "Created VM"
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr "VM destroyed"
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
#, fuzzy
msgid "Shutting down VM (cleanly)"
msgstr "Shutting down VM"
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
#, fuzzy
msgid "Shutting down VM (hard)"
msgstr "Shutting down VM"
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: 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:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: 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:409
+#: 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:412
+#: 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:438
+#: 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:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10653,35 +10989,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:479
+#: 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:504
+#: 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:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr "Starting snapshot for VM"
-#: nova/virt/xenapi/vm_utils.py:698
+#: 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:951
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
@@ -10690,17 +11026,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:1007
+#: 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:1041
+#: 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:1053
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
@@ -10709,51 +11045,44 @@ msgstr ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
-#: nova/virt/xenapi/vm_utils.py:1066
+#: 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:1100
+#: 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:1111
+#: 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:1186
+#: 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:1201
-#, 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
@@ -10762,63 +11091,63 @@ msgstr ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
-#: nova/virt/xenapi/vm_utils.py:1268
+#: 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:1282
+#: 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:1291
+#: 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:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: 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:1418
+#: 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:1521
+#: 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:1548
+#: 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:1576
+#: 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:1594
+#: 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 "
@@ -10828,50 +11157,50 @@ msgstr ""
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
-#: nova/virt/xenapi/vm_utils.py:1607
+#: 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:1615
+#: 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:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO: not iso content"
-#: nova/virt/xenapi/vm_utils.py:1620
+#: 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:1623
+#: 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:1627
+#: 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:1629
+#: 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:1632
+#: 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:1635
+#: 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:1638
+#: 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:1660
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
@@ -10880,22 +11209,22 @@ msgstr ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
-#: nova/virt/xenapi/vm_utils.py:1676
+#: 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:1730
+#: 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:1790
+#: 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:1877
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10904,66 +11233,66 @@ msgstr ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
-#: nova/virt/xenapi/vm_utils.py:1887
+#: 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:1922
+#: 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:1942
+#: 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:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Plugging VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: 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:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: 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:2011
+#: 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:2013
+#: 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:2015
+#: 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 "
@@ -10971,16 +11300,16 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "Partitions:"
-#: nova/virt/xenapi/vm_utils.py:2038
+#: 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:2063
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
@@ -10989,12 +11318,19 @@ msgstr ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
-#: nova/virt/xenapi/vm_utils.py:2076
+#: 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:2130
+#: 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 "
@@ -11003,7 +11339,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:2163
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
@@ -11012,20 +11348,20 @@ msgstr ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
-#: nova/virt/xenapi/vm_utils.py:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr "Manipulating interface files directly"
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr "Updating progress to %(progress)d"
@@ -11035,40 +11371,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr "Starting instance"
-#: nova/virt/xenapi/vmops.py:381
+#: 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:454
+#: 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:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr "Failed to spawn, rolling back"
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr "Auto configuring disk, attempting to resize partition..."
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr "Starting VM"
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr "Waiting for instance state to become running"
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
@@ -11077,136 +11413,146 @@ msgstr ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, 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:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr "Instance agent version: %s"
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr "Setting VCPU weight"
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr "Could not find VM with name %s"
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr "Finished snapshot and upload for VM"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, 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:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr "Failed to transfer vhd to new host"
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-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"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Failed to terminate instance"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, 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:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr "Resize complete"
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr "Starting halted instance found during reboot"
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr "Unable to find root VBD/VDI for VM"
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "Destroying VM"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
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:1130
+#: nova/virt/xenapi/vmops.py:1184
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:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr "kernel/ramdisk files removed"
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr "Destroying VM"
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr "VM is not present, skipping destroy..."
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr "Instance is already in Rescue Mode: %s"
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "VM is not present, skipping destroy..."
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr "Automatically hard rebooting"
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr "Injecting network info to xenstore"
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr "Creating vifs"
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Creating VIF for network %(network_ref)s"
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr "Injecting hostname to xenstore"
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
@@ -11215,25 +11561,25 @@ msgstr ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Bad networks format"
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr "Migrate Receive failed"
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
#, fuzzy
msgid "VM.assert_can_migrate failed"
msgstr "VM.assert_can_migratefailed"
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr "Migrate Send failed"
@@ -11315,7 +11661,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 "
@@ -11323,7 +11669,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"
@@ -11363,18 +11709,21 @@ msgstr "Unexpected error: %s"
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr "Starting nova-xvpvncproxy node (version %s)"
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr "Cinderclient connection created using URL: %s"
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
#, fuzzy
msgid "status must be 'in-use'"
msgstr "status must be available"
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
#, fuzzy
msgid "status must be 'available'"
msgstr "status must be available"
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr "Key pair '%s' already exists."
+
diff --git a/nova/locale/es/LC_MESSAGES/nova.po b/nova/locale/es/LC_MESSAGES/nova.po
index d46bad9a2..2f18b073b 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -88,7 +88,7 @@ msgstr "Ruta a las opciones: %s"
msgid "An unknown exception occurred."
msgstr "Una excepcion desconocida ha ocurrido"
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -174,8 +174,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -191,8 +190,9 @@ msgstr "Entrada invalida recibida"
msgid "Invalid volume"
msgstr "Volumen inválido"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -206,7 +206,7 @@ msgstr "Firma invalida para el usuario %s"
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Protocolo IP invalido %(protocol)s"
@@ -954,10 +954,10 @@ msgstr ""
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:898 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
#, python-format
@@ -1024,281 +1024,314 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, 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:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, 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:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, 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:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, 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:1197
+#: nova/exception.py:1198
#, 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:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "el grupo %s ya existe"
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1309,7 +1342,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 ""
@@ -1330,206 +1363,125 @@ msgstr ""
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 "Conjunto completo de opciones (FLAGS):"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr ""
-
-#: 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
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "configurando la red del host"
-
-#: 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 ""
-#: 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "corriendo cmd (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "El resultado fue %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "Depuración de la devolución de llamada: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "No se encuentra la dirección del enlace local.:%s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "backend inválido: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1614,131 +1566,126 @@ msgstr ""
msgid "Too many failed authentications."
msgstr "Demasiados intentos de autenticacion fallidos."
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Fallo de autenticación: %s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Demasiados intentos de autenticacion fallidos."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "acción: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "No encontrado: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, fuzzy, python-format
msgid "QuotaError raised: %s"
msgstr "Sucedió un error inexperado: %s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "Sucedió un error inexperado: %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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 "Ha sucedido un error desconocido. Por favor repite el intento de nuevo."
-#: nova/api/ec2/apirequest.py:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1748,69 +1695,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Creando par de claves %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Borrar para de claves %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Protocolo IP invalido %(protocol)s"
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
msgid "No rule for the specified parameters."
msgstr "No hay regla para los parámetros especificados."
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "Esta regla ya existe en el grupo %s"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Obtener salida de la consola para la instancia %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Crear volumen de %s GB"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1819,7 +1772,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Desasociar volumen %s"
@@ -1830,7 +1783,7 @@ 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:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "atributo no soportado: %s"
@@ -1862,140 +1815,140 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Desasociar dirección %s"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Desasociar dirección %s"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Desasociar dirección %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Reiniciar instancia %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "Des-registrando la imagen %s"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "usuario o grupo no especificado"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "sólo el grupo \"all\" está soportado"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "operation_type debe ser añadir o eliminar"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "Actualizando imagen %s públicamente"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "instancia %s: rescatada"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
#, fuzzy
msgid "Invalid CIDR"
msgstr "Cidr %(cidr)s invalido"
@@ -2037,46 +1990,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2084,63 +2077,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2150,21 +2144,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 ""
@@ -2175,6 +2173,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 ""
@@ -2194,14 +2193,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2244,13 +2243,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2259,20 +2258,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Llanado al adquiridor %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2285,12 +2287,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2298,17 +2300,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Firma invalida para el usuario %s"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Firma invalida para el usuario %s"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2344,10 +2346,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 ""
@@ -2373,225 +2377,300 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, 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:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Punto de montaje no puede ser traducido: %s"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Punto de montaje no puede ser traducido: %s"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, 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:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "instancia %s: rescatada"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Fallo a reinicia la instancia"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2678,7 +2757,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2698,17 +2777,17 @@ msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2763,28 +2842,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 ""
@@ -2866,27 +2950,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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"
@@ -2935,7 +3019,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2984,7 +3068,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3018,29 +3102,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Llanado al adquiridor %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Llanado al adquiridor %s"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3065,11 +3149,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 ""
@@ -3183,16 +3262,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 ""
@@ -3202,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3220,16 +3299,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3243,12 +3322,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 ""
@@ -3266,174 +3345,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "instancia %s: arrancada"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: 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:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3456,7 +3597,7 @@ msgstr "Mascara de red a insertar en la configuración de openvpn"
msgid "Launching VPN for %s"
msgstr "Lanzando VPN para %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Imposible encontrar volumen %s"
@@ -3476,277 +3617,277 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "recibido %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "Capturado error: %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "configurando la red del host"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "Asignar dirección"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "el grupo %s ya existe"
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "configurando la red del host"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Reiniciar instancia %r"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "Sucedió un error inexperado: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3827,255 +3968,271 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: 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:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, 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:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Comenzando snapshot para la VM %s"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, 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:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "Crear Grupo de Seguridad %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Imposible destruir VBD %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Imposible destruir VBD %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "Revocar ingreso al grupo de seguridad %s"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Borrar grupo de seguridad %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Autorizar ingreso al grupo de seguridad %s"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revocar ingreso al grupo de seguridad %s"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4110,84 +4267,84 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
@@ -4196,647 +4353,648 @@ msgstr ""
"Incapaz de emigrar la instancia %(instance_id)s al actual anfitrion "
"(%(host)s)"
-#: nova/compute/manager.py:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Fallo a reinicia la instancia"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Fallo al suspender la instancia"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Sucedió un error inexperado: %s"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Capturado error: %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Reiniciando instancia %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Desasociar volumen %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Reiniciando instancia %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Ejecutando instancias: %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instancia %s: reiniciada"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "instancia %s: creando snapshot"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Fallo al suspender la instancia"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Capturado error: %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Tipo de instancia inválido %(instance_type)s."
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "instancia %s: creando snapshot"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instancia %s: obteniendo los diagnosticos"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "configurando la red del host"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
#, fuzzy
msgid "Inject network info"
msgstr "configurando la red del host"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Obtener salida de la consola para la instancia %s"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Desvinculando volumen de instancia desconocida %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "instancia %s: arrancada"
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Fallo al generar metadatos para la ip %s"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Borrando usuario %s"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instancia %s: arrancada"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Borrando usuario %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "Tipo de instancia inválido %(instance_type)s."
+
#: nova/compute/resource_tracker.py:92
msgid ""
"Host field should not be set on the instance until resources have been "
@@ -4946,18 +5104,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5037,56 +5195,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5103,56 +5277,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5188,32 +5366,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 ""
@@ -5232,16 +5415,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 ""
@@ -5355,103 +5542,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: 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:1022
+#: 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:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "Matando radvd lanzado %s"
-#: nova/network/linux_net.py:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "backend inválido: %s"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Iniciando interfaz VLAN %s"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Iniciando interfaz puente para %s"
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: 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:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Iniciando interfaz puente para %s"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Des-registrando la imagen %s"
@@ -5546,38 +5733,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5613,80 +5800,79 @@ msgstr "recibido %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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"
@@ -5696,68 +5882,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:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5769,32 +5960,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5804,17 +6014,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 ""
@@ -5887,21 +6097,102 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "Ejecutando cmd (subprocesos): %s"
+#: 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 "El resultado fue %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "corriendo cmd (SSH): %s"
+
+#: 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
+#, 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: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 ""
@@ -6030,64 +6321,69 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "Una excepcion desconocida ha ocurrido"
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "Reuso invalido de una coneccion RPC"
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6116,44 +6412,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 ""
@@ -6401,7 +6697,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6410,36 +6706,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6513,10 +6821,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
@@ -6524,6 +6839,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"
@@ -6559,14 +6879,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 ""
@@ -6636,46 +6956,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 ""
@@ -6728,80 +7048,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "Intento de instanciar sigleton"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6814,61 +7096,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "Ejecutando instancias: %s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "Después de terminar las instancias: %s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6878,22 +7170,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"
@@ -6955,35 +7247,73 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7109,19 +7439,19 @@ msgstr ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7289,15 +7619,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7355,97 +7685,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "Fallo al montar el sistema de ficheros: %s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "Fallo al montar el sistema de ficheros: %s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7782,7 +8112,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7797,24 +8127,24 @@ msgstr "Obtener salida de la consola para la instancia %s"
msgid "Host IP address is: %s"
msgstr "Liberar dirección %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7955,50 +8285,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 ""
@@ -8138,12 +8468,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:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8309,7 +8639,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8343,239 +8673,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "instancia %s: reiniciada"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Fallo a reinicia la instancia"
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: 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:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8583,73 +8913,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8657,50 +8987,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8710,67 +9040,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: 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:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8803,153 +9133,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Iniciando interfaz puente para %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8968,7 +9298,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. "
@@ -8976,17 +9306,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 ""
@@ -9062,12 +9392,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9079,70 +9409,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9166,85 +9496,85 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Ejecutando cmd (subprocesos): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "Falló la conexión a melange"
@@ -9268,7 +9598,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 ""
@@ -9337,74 +9667,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "instancia %s: arrancada"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "Iniciando interfaz puente para %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Creando una instancia raw"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "instancia %s: Creando imagen"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Creando una instancia raw"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, fuzzy, python-format
msgid "Instance '%s' failed to boot"
msgstr "instancia %s: reiniciada"
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "instancia %s: creando snapshot"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9420,27 +9750,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 ""
@@ -9506,18 +9836,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 ""
@@ -9856,54 +10186,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -10030,107 +10360,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10149,24 +10483,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Obtenida excepción %s"
@@ -10305,72 +10639,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: 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:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: 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:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10379,304 +10713,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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: 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:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: 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:1291
+#: 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:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: 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:1521
+#: 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:1548
+#: 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:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: 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:2011
+#: 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:2013
+#: 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:2015
+#: 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 "
@@ -10684,55 +11011,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10742,201 +11076,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Creando una instancia raw"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Fallo al suspender la instancia"
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Finalizado el snapshot y la subida de la VM %s"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Fallo a reinicia la instancia"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "configurando la red del host"
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, 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:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -11017,7 +11361,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 "
@@ -11025,7 +11369,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"
@@ -11065,16 +11409,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/fi_FI/LC_MESSAGES/nova.po b/nova/locale/fi_FI/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..462c6c82f
--- /dev/null
+++ b/nova/locale/fi_FI/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# English (United States) translations for nova.
+# Copyright (C) 2012 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-10 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) "
+"(http://www.transifex.com/projects/p/openstack/language/fi_FI/)\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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/fr/LC_MESSAGES/nova.po b/nova/locale/fr/LC_MESSAGES/nova.po
index 0f9f99b15..f4c1246ef 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -86,7 +86,7 @@ msgstr "Chemin des propriétés: %s"
msgid "An unknown exception occurred."
msgstr "Une exception inconnue s'est produite."
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -172,8 +172,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "La paire de clés de donnée n'est pas valide"
@@ -189,8 +188,9 @@ msgstr "Entrée invalide reçue"
msgid "Invalid volume"
msgstr "Volume invalide"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -204,7 +204,7 @@ msgstr "Signature non valide pour l'utilisateur %s"
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Le protocole IP %(protocol)s est invalide"
@@ -982,10 +982,10 @@ msgstr ""
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:898 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
#, python-format
@@ -1052,221 +1052,217 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "Aucunes IPs dynamiques existes."
-#: nova/exception.py:997
+#: nova/exception.py:993
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Aucunes IPs dynamiques existes."
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, 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:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, 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:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, 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:1107
#, 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:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, 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:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
@@ -1275,62 +1271,99 @@ 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:1149
#, 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:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, 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:1161
+#: nova/exception.py:1162
#, 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:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, 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:1197
+#: nova/exception.py:1198
#, 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:1203
+#, 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:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1341,7 +1374,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 ""
@@ -1362,206 +1395,125 @@ msgstr ""
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 "Ensemble de propriétés complet :"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr ""
-
-#: 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
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "adresse de départ"
-
-#: 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 "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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Execution de la cmd (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Le résultat était %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "Debug dans le rappel : %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, 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:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "Backend invalide : %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1646,7 +1598,7 @@ msgstr ""
msgid "Too many failed authentications."
msgstr "Trop d'erreur d'authentification"
-#: nova/api/ec2/__init__.py:184
+#: nova/api/ec2/__init__.py:183
#, python-format
msgid ""
"Access key %(access_key)s has had %(failures)d failed authentications and"
@@ -1656,126 +1608,121 @@ msgstr ""
"d'authentification et sera par conséquent vérouillée pour %(lock_mins)d "
"minutes."
-#: nova/api/ec2/__init__.py:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Echec d'authentification : %s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Trop d'erreur d'authentification"
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "action: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr "arg: %(key)s\t\tval: %(value)s"
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr ""
"Requête non authorisé pour le controlleur=%(controller)s et "
"l'action=%(action)s"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr "\"Instance non trouvée\" remontée : %s"
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr "\"Volume non trouvé\" remonté : %s"
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "\"Non trouvé\" remonté : %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, fuzzy, python-format
msgid "QuotaError raised: %s"
msgstr "\"Erreur inopinée\" remontée : %s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "\"Erreur inopinée\" remontée : %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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 "Une erreur inopinée à eu lieu. Merci d'essayer votre requête à nouveau."
-#: nova/api/ec2/apirequest.py:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1787,69 +1734,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, fuzzy, python-format
msgid "Could not find key pair(s): %s"
msgstr "Impossible de déchiffrer la clef privée : %s"
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Création du bi-clef %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Suppression du bi-clef %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, fuzzy, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr "Pas assez de parametres pour contruire un règle valide."
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Le protocole IP %(protocol)s est invalide"
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
msgid "No rule for the specified parameters."
msgstr "Pas de règle pour les paramètres spécifiés."
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "Cette règle existe déjà dans le groupe %s"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Récupération de la sortie de la console de l'instance %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Création d'un volume de %s Go"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1860,7 +1813,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Dé-montage du volume %s"
@@ -1871,7 +1824,7 @@ 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:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "attribut non reconnu : %s"
@@ -1904,145 +1857,145 @@ msgstr ""
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:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Désassociation de l'adresse %s"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
#, fuzzy
msgid "Floating ip is already associated."
msgstr "L'IP dynamique %(address)s est associée."
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
#, fuzzy
msgid "l3driver call to add floating ip failed."
msgstr "Aucune IPs dynamiques disponibles."
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Désassociation de l'adresse %s"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Désassociation de l'adresse %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
#, fuzzy
msgid "Floating ip is not associated."
msgstr "L'IP dynamique %(address)s n'est pas associée."
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "Début de la destruction d'instance"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Re-démarrage de l'instance %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "Dé-enregitrement de l'image %s"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "Utilisateur ou groupe non spécifié"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "Seul le group \"tous\" est supporté"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
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:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "Mis à jour de la publication de l'image %s"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "instance %s: récupérée"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
#, fuzzy
msgid "Invalid CIDR"
msgstr "Le cidr %(cidr)s est invalide"
@@ -2084,46 +2037,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2131,63 +2124,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2197,21 +2191,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 ""
@@ -2222,6 +2220,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 ""
@@ -2241,14 +2240,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2291,13 +2290,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2306,20 +2305,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Appel du getter %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2332,12 +2334,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2345,17 +2347,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Signature non valide pour l'utilisateur %s"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Signature non valide pour l'utilisateur %s"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2391,10 +2393,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 ""
@@ -2420,225 +2424,300 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Va essayer d'arrêter %s"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, 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:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Le point de montage ne peut pas être traduit : %s"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Le point de montage ne peut pas être traduit : %s"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, 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:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, 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:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Échec du redémarrage de l'instance"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2725,7 +2804,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2745,17 +2824,17 @@ msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2810,28 +2889,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 ""
@@ -2914,27 +2998,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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é."
@@ -2983,7 +3067,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -3034,7 +3118,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "L'IP dynamique %(address)s n'est pas associée."
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3068,29 +3152,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Appel du getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Appel du getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3115,11 +3199,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 ""
@@ -3233,16 +3312,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 ""
@@ -3252,7 +3331,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "Pas assez de parametres pour contruire un règle valide."
@@ -3271,16 +3350,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3294,12 +3373,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 ""
@@ -3317,176 +3396,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "instance %s: a démarrée"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: 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:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3509,7 +3648,7 @@ msgstr "Masque réseau à passer à la configuration d'openvpn"
msgid "Launching VPN for %s"
msgstr "Démarrage du VPN pour %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Impossible de trouver le volume %s"
@@ -3529,279 +3668,279 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "%s reçu"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "Erreur interceptée : %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "réglage de l'hôte réseau"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "adresse de départ"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
#, fuzzy
msgid "No fixed IP found."
msgstr "Aucunes IPs fixes trouvées."
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "L'IP dynamique %(address)s est associée."
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr "adresse de départ"
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "réglage de l'hôte réseau"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
#, fuzzy
msgid "UUID is required to delete Quantum Networks"
msgstr "%(req)s est requis pour créer un réseau."
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Re-démarrage de l'instance %r"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "Le service %(service_id)s ne peut pas être trouvé."
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "Le service %(service_id)s ne peut pas être trouvé."
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "\"Erreur inopinée\" remontée : %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3882,255 +4021,271 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: 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:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Démarrage de %s instances..."
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Début de la destruction d'instance"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, 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:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Début de la destruction d'instance"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Début de création d'instantané (snapshot) pour la VM %s"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "Création du groupe de sécurité %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Impossible de supprimer le VBD %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Impossible de supprimer le VBD %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "Révocation de groupe de sécurité %s"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Suppression du groupe de sécurité %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorisation du groupe de sécurité %s"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Révocation de groupe de sécurité %s"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4165,84 +4320,84 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
@@ -4251,650 +4406,651 @@ msgstr ""
"Impossible de migrer l'instance (%(instance_id)s) vers l'hôte actuel "
"(%(host)s)."
-#: nova/compute/manager.py:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: 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:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Échec de la suspension de l'instance"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "\"Erreur inopinée\" remontée : %s"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: 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:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Erreur interceptée : %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Redémarrage de l'instance %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Dé-montage du volume %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Redémarrage de l'instance %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Instance actives : %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: re-démarrée"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: création d'un instantané (snapshot)"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "Injection du chemin d'accès : '%s'"
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Échec de la suspension de l'instance"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Erreur interceptée : %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
#, fuzzy
msgid "Unrescuing"
msgstr "instance %s: dé-récupération"
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "L'instance de type %(instance_type)s est invalide."
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "instance %s: création d'un instantané (snapshot)"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: récupération des diagnostiques"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "réglage de l'hôte réseau"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
#, fuzzy
msgid "Inject network info"
msgstr "réglage de l'hôte réseau"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Récupération de la sortie de la console de l'instance %s"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
#, fuzzy
msgid "Getting vnc console"
msgstr "Ajout de console"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "Ajout de console"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Démontage de volume d'une instance inconnue %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, 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:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "L'hôte %(host)s ne peut pas être trouvé."
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, 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:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, 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:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Suppression de l'utilisateur %s"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instance %s: a démarrée"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Suppression de l'utilisateur %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "L'instance de type %(instance_type)s est invalide."
+
#: nova/compute/resource_tracker.py:92
msgid ""
"Host field should not be set on the instance until resources have been "
@@ -5005,18 +5161,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5096,56 +5252,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5162,56 +5334,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5247,32 +5423,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 ""
@@ -5291,16 +5472,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"
@@ -5415,103 +5600,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq à renvoyé %s"
-#: nova/network/linux_net.py:1022
+#: 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:1102
+#: 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:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Backend invalide : %s"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: 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:1447
+#: 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:1459
+#: 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:1495
+#: 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:1732
+#: 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:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Erreur au démarrage xvp : %s"
@@ -5607,38 +5792,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: nova/network/manager.py:1795
msgid ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
msgstr "La somme du nombre de réseau et le début de vlan ne peut excéder 4094"
-#: nova/network/manager.py:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5674,80 +5859,79 @@ msgstr "%s reçu"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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."
@@ -5757,70 +5941,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:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5834,32 +6023,51 @@ 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"
msgstr "Le quota ne peut pas être trouvé"
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5869,17 +6077,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 ""
@@ -5952,21 +6160,102 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "Execution de la commande (sous-processus) : %s"
+#: 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 "Le résultat était %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Execution de la cmd (SSH): %s"
+
+#: 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
+#, 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: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 ""
@@ -6095,64 +6384,69 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "Une exception inconnue s'est produite."
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "Réutilisation invalide d'une connexion RPC"
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6181,44 +6475,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 ""
@@ -6466,7 +6760,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6475,36 +6769,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6578,10 +6884,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
@@ -6589,6 +6902,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"
@@ -6624,14 +6942,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 ""
@@ -6701,46 +7019,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 ""
@@ -6793,80 +7111,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "Tentative d'instanciation d'un singleton"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6879,61 +7159,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "Instance actives : %s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "Après l'arrêt d'instances : %s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6943,22 +7233,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"
@@ -7020,35 +7310,73 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7174,19 +7502,19 @@ msgstr ""
"Sortie standard : %(stdout)r\n"
"Sortie d'erreur : %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7354,15 +7682,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7421,101 +7749,101 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, fuzzy, python-format
msgid "Ignoring error injecting data into image (%(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/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "Impossible de monter le système de fichier : %s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "Impossible de monter le système de fichier : %s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, fuzzy, python-format
msgid "Ignoring error injecting %(inject)s into image (%(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/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7852,7 +8180,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7867,24 +8195,24 @@ msgstr "Récupération de la sortie de la console de l'instance %s"
msgid "Host IP address is: %s"
msgstr "Désallocation de l'adresse %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -8025,50 +8353,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 ""
@@ -8208,12 +8536,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:1876
+#: 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:1883
+#: 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'"
@@ -8379,7 +8707,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8413,243 +8741,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: 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:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Aucun réseau défini."
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Aucun réseau défini."
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "instance %s: re-démarrée"
-#: nova/virt/libvirt/driver.py:1300
+#: 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:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: 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:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: 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:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8657,73 +8985,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8731,50 +9059,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8784,67 +9112,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: 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:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8877,153 +9205,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Démarrage de l'interface de Bridge %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -9042,7 +9370,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. "
@@ -9050,17 +9378,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 ""
@@ -9136,12 +9464,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9153,70 +9481,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9240,85 +9568,85 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Execution de la commande (sous-processus) : %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "La connexion à Melange a échoué"
@@ -9342,7 +9670,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 ""
@@ -9411,74 +9739,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "Aucuns types d'instance trouvés."
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "Démarrage de l'interface de Bridge %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Création d'une instance raw"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "instance %s : Création de l'image"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Création d'une instance raw"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, fuzzy, python-format
msgid "Instance '%s' failed to boot"
msgstr "instance %s: re-démarrée"
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "instance %s: création d'un instantané (snapshot)"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "Démarrage de %s instances..."
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "Démarrage de %s instances..."
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9494,27 +9822,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 ""
@@ -9580,18 +9908,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 ""
@@ -9931,54 +10259,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -10105,107 +10433,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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"
@@ -10225,24 +10557,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: 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:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Reçu exception : %s"
@@ -10381,72 +10713,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: 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:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: 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:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10455,239 +10787,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:479
+#: 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:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: 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:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: 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:1291
+#: 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:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: 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:1521
+#: 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:1548
+#: 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:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10696,66 +11021,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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Connexion de VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: 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:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: 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:2011
+#: 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:2013
+#: 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:2015
+#: 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 "
@@ -10763,55 +11088,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: 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:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10821,204 +11153,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Création d'une instance raw"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: 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:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
#, fuzzy
msgid "Starting VM"
msgstr "Re-démarrage xvp"
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Fin de l'instantané et du chargement de VM %s"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Échec du redémarrage de l'instance"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "Re-démarrage xvp"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr "Fichiers noyau/ramdisk supprimés"
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
#, fuzzy
msgid "Destroying VM"
msgstr "Re-démarrage xvp"
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "réglage de l'hôte réseau"
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, 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:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -11099,7 +11441,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 "
@@ -11107,7 +11449,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"
@@ -11147,16 +11489,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..4e7b6dc81
--- /dev/null
+++ b/nova/locale/hr/LC_MESSAGES/nova.po
@@ -0,0 +1,11264 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..154ef8c81
--- /dev/null
+++ b/nova/locale/hu/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..0e069d050
--- /dev/null
+++ b/nova/locale/id/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/it/LC_MESSAGES/nova.po b/nova/locale/it/LC_MESSAGES/nova.po
index b004f4764..ca4d4a74d 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -84,7 +84,7 @@ msgstr "Percorso dei flags: %s"
msgid "An unknown exception occurred."
msgstr "E' stato riscontrato un errore sconosciuto"
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -168,8 +168,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -185,8 +184,9 @@ msgstr "E' stato ricevuto un input non valido"
msgid "Invalid volume"
msgstr "Volume non valido"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -942,9 +942,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1012,281 +1012,314 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, 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:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1297,7 +1330,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 ""
@@ -1318,206 +1351,125 @@ msgstr ""
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 "Insieme di FLAGS:"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr ""
-
-#: 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 ""
-#: 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Eseguendo cmd (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Il risultato é %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1602,130 +1554,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1735,69 +1682,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1806,7 +1759,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1816,7 +1769,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1848,138 +1801,138 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "istanza %s: ripristino"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2020,46 +1973,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2067,63 +2060,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2133,21 +2127,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 ""
@@ -2158,6 +2156,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 ""
@@ -2177,14 +2176,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2227,13 +2226,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2242,20 +2241,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Dichiarando la coda %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2268,12 +2270,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2281,17 +2283,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2327,10 +2329,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 +2360,296 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Volume non valido"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2657,7 +2736,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2677,17 +2756,17 @@ msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2741,28 +2820,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 ""
@@ -2843,27 +2927,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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"
@@ -2912,7 +2996,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2960,7 +3044,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2993,29 +3077,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Dichiarando la coda %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Dichiarando la coda %s"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3040,11 +3124,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 ""
@@ -3155,16 +3234,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 ""
@@ -3174,7 +3253,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3191,16 +3270,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3214,12 +3293,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 ""
@@ -3237,174 +3316,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: 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:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3426,7 +3567,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Impossibile localizzare il volume %s"
@@ -3446,273 +3587,273 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "ricevuto %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "istanza %s: ripristino rete"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Impossibile sospendere l'istanza"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3793,246 +3934,262 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Impossibile localizzare il volume %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Impossibile localizzare il volume %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4067,726 +4224,726 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Impossibile sospendere l'istanza"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Riavviando l'istanza %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Impossibile smontare il volume %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Riavviando l'istanza %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Impossibile sospendere l'istanza"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "istanza %s: ricezione diagnostiche"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "istanza %s: ripristino rete"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "istanza %s: sospensione in corso"
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4896,18 +5053,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4987,56 +5144,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5053,56 +5226,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5138,32 +5315,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 ""
@@ -5182,16 +5364,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 ""
@@ -5305,103 +5491,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Avviando l'interfaccia VLAN %s"
-#: nova/network/linux_net.py:1447
+#: 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:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: 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:1732
+#: 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:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5496,38 +5682,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5563,80 +5749,79 @@ msgstr "ricevuto %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5646,65 +5831,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5716,32 +5906,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5751,17 +5960,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 ""
@@ -5834,21 +6043,102 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "Esecuzione del comando (sottoprocesso): %s"
+#: 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 "Il risultato é %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Eseguendo cmd (SSH): %s"
+
+#: 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
+#, 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: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 ""
@@ -5977,64 +6267,69 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "E' stato riscontrato un errore sconosciuto"
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6063,44 +6358,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 ""
@@ -6346,7 +6641,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6355,36 +6650,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6456,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
@@ -6467,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"
@@ -6502,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 ""
@@ -6579,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 "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 ""
@@ -6671,79 +6990,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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,61 +7038,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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 +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"
@@ -6897,35 +7189,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7051,19 +7380,19 @@ msgstr ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7231,15 +7560,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7297,97 +7626,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7723,7 +8052,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7737,24 +8066,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7895,50 +8224,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 ""
@@ -8078,12 +8407,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:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8249,7 +8578,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8283,239 +8612,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Impossibile riavviare l'istanza"
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "volume %s: creato con successo"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Impossibile riavviare l'istanza"
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: 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:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8523,73 +8852,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8597,50 +8926,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8650,67 +8979,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8743,153 +9072,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Avviando l'interfaccia Bridge per %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8908,7 +9237,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. "
@@ -8916,17 +9245,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 ""
@@ -9002,12 +9331,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9019,70 +9348,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9106,85 +9435,85 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Esecuzione del comando (sottoprocesso): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9207,7 +9536,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 ""
@@ -9275,74 +9604,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "istanza %s: sospensione in corso"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "Avviando l'interfaccia Bridge per %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Riavviando l'istanza %s"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Riavviando l'istanza %s"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9358,27 +9687,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 ""
@@ -9444,18 +9773,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 ""
@@ -9789,54 +10118,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9959,107 +10288,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10075,24 +10408,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10229,375 +10562,368 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: 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:1291
+#: 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:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10605,55 +10931,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10663,199 +10996,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Riavviando l'istanza %s"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Impossibile sospendere l'istanza"
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Impossibile riavviare l'istanza"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10936,7 +11279,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 "
@@ -10944,7 +11287,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 ""
@@ -10984,16 +11327,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..7427a5701
--- /dev/null
+++ b/nova/locale/it_IT/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/ja/LC_MESSAGES/nova.po b/nova/locale/ja/LC_MESSAGES/nova.po
index d75fc6627..578df2920 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -84,7 +84,7 @@ msgstr "Flags ã®ãƒ‘ス: %s"
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -168,8 +168,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -185,8 +184,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -200,7 +200,7 @@ msgstr "Invalid signature: ユーザ %s ã®ç½²åãŒä¸æ­£ã§ã™ã€‚"
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -944,10 +944,10 @@ msgstr ""
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:898 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
#: nova/exception.py:902
#, python-format
@@ -1014,281 +1014,314 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "イメージをループãƒãƒƒã‚¯ %s ã«ã‚¢ã‚¿ãƒƒãƒã§ãã¾ã›ã‚“。"
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "イメージをループãƒãƒƒã‚¯ %s ã«ã‚¢ã‚¿ãƒƒãƒã§ãã¾ã›ã‚“。"
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
+#: nova/exception.py:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1299,7 +1332,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 ""
@@ -1320,206 +1353,125 @@ msgstr ""
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 "FLAGSã®ä¸€è¦§:"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr ""
-
-#: 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
-#, 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 ""
-#: 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "コマンド(SSH)を実行: %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "コマンド実行çµæžœï¼š %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "コールãƒãƒƒã‚¯ä¸­ã®ãƒ‡ãƒãƒƒã‚°: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "リンクローカルアドレスãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "%(interface)s ã®ãƒ­ãƒ¼ã‚«ãƒ«IPアドレスã®ãƒªãƒ³ã‚¯ãŒå–å¾—ã§ãã¾ã›ã‚“:%(ex)s"
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "ä¸æ­£ãªãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã§ã™: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1604,131 +1556,126 @@ msgstr ""
msgid "Too many failed authentications."
msgstr "èªè¨¼å¤±æ•—ã®å›žæ•°ãŒå¤šã™ãŽã¾ã™ã€‚"
-#: nova/api/ec2/__init__.py:184
+#: 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 "アクセスキー %(access_key)s 㯠%(failures)d 回èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã®ã§ã€%(lock_mins)d 分間ロックã—ã¾ã™ã€‚"
-#: nova/api/ec2/__init__.py:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "%s ã®èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "èªè¨¼å¤±æ•—ã®å›žæ•°ãŒå¤šã™ãŽã¾ã™ã€‚"
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "アクション(action): %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr "引数: %(key)s\t\t値: %(value)s"
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr "コントローラ=%(controller)s ã¨ã‚¢ã‚¯ã‚·ãƒ§ãƒ³=%(action)s 用ã®è¨±å¯ã•ã‚Œã¦ã„ãªã„リクエスト"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr "InstanceNotFound ãŒç™ºè¡Œã•ã‚Œã¾ã—ãŸ: %s"
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr "VolumeNotFound ãŒç™ºè¡Œã•ã‚Œã¾ã—ãŸ: %s"
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "NotFound 発生: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, fuzzy, python-format
msgid "QuotaError raised: %s"
msgstr "予期ã—ãªã„エラー発生: %s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "予期ã—ãªã„エラー発生: %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: 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,69 +1685,75 @@ msgstr "未サãƒãƒ¼ãƒˆã® API リクエスト: コントローラ = %(controlle
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, fuzzy, python-format
msgid "Could not find key pair(s): %s"
msgstr "プライベートキーã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Create key pair: キーペア %s を作æˆã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Delete key pair: キーペア %s を削除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, fuzzy, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr "有効ãªãƒ«ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹ç‚ºã®å分ãªãƒ‘ラメータãŒã‚ã‚Šã¾ã›ã‚“"
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "指定ã•ã‚ŒãŸãƒ«ãƒ¼ãƒ«ã¯æ—¢ã«ã‚°ãƒ«ãƒ¼ãƒ— %s ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Create volume: %s GBã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’作æˆã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr "ボリューム %(volume_id)s をインスタンス %(instance_id)s ã®ãƒ‡ãƒã‚¤ã‚¹ %(device)s ã«æŽ¥ç¶š"
@@ -1809,7 +1762,7 @@ msgstr "ボリューム %(volume_id)s をインスタンス %(instance_id)s ã®ã
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Detach volume: ボリューム %s をデタッãƒã—ã¾ã™"
@@ -1820,7 +1773,7 @@ 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:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "アトリビュート %s ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。"
@@ -1852,140 +1805,140 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "インスタンス %(instance_id)s ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ %(public_ip)s を割り当ã¦"
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Disassociate address: アドレス %s ã®é–¢é€£ä»˜ã‘を解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Disassociate address: アドレス %s ã®é–¢é€£ä»˜ã‘を解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Disassociate address: アドレス %s ã®é–¢é€£ä»˜ã‘を解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Reboot instance: インスタンス %r ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "De-registering image: イメージ %s を登録解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "ユーザã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "グループ \"all\" ã®ã¿ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "operation_type 㯠add ã¾ãŸã¯ remove ã®ä½•ã‚Œã‹ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "イメージ %s ã®å…¬é–‹è¨­å®šã‚’æ›´æ–°ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "インスタンス %s: rescued"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2025,46 +1978,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2072,63 +2065,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2138,21 +2132,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 ""
@@ -2163,6 +2161,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 ""
@@ -2182,14 +2181,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2232,13 +2231,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2247,20 +2246,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "getter %s をコールã—ã¾ã™ã€‚"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2273,12 +2275,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2286,17 +2288,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Invalid signature: ユーザ %s ã®ç½²åãŒä¸æ­£ã§ã™ã€‚"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Invalid signature: ユーザ %s ã®ç½²åãŒä¸æ­£ã§ã™ã€‚"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2332,10 +2334,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 ""
@@ -2361,224 +2365,299 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "マウントãƒã‚¤ãƒ³ãƒˆã‚’変æ›ã§ãã¾ã›ã‚“。 %s"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "マウントãƒã‚¤ãƒ³ãƒˆã‚’変æ›ã§ãã¾ã›ã‚“。 %s"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "インスタンス %s: rescued"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2665,7 +2744,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2685,17 +2764,17 @@ msgstr "例外: compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2750,28 +2829,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 ""
@@ -2853,27 +2937,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
@@ -2922,7 +3006,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2971,7 +3055,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "インスタンス %(instance_id)s ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ %(public_ip)s を割り当ã¦"
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3005,29 +3089,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "getter %s をコールã—ã¾ã™ã€‚"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "getter %s をコールã—ã¾ã™ã€‚"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3052,11 +3136,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 ""
@@ -3169,16 +3248,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 ""
@@ -3188,7 +3267,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "有効ãªãƒ«ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹ç‚ºã®å分ãªãƒ‘ラメータãŒã‚ã‚Šã¾ã›ã‚“"
@@ -3206,16 +3285,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3229,12 +3308,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 ""
@@ -3252,174 +3331,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "メッセージ %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "メッセージ %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3442,7 +3583,7 @@ msgstr "openvpnã®è¨­å®šã«å…¥ã‚Œã‚‹ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ã®å€¤"
msgid "Launching VPN for %s"
msgstr "%s 用ã®VPNã‚’èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "ボリューム %s ã®å­˜åœ¨ãŒç¢ºèªã§ãã¾ã›ã‚“。"
@@ -3462,277 +3603,277 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "å—信: %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "開始アドレス"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr "開始アドレス"
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Reboot instance: インスタンス %r ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "予期ã—ãªã„エラー発生: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3813,251 +3954,267 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr "インスタンスã®ã‚¯ã‚ªãƒ¼ã‚¿ã‚’超ãˆã¾ã—ãŸã€‚ã“ã®ã‚¿ã‚¤ãƒ—ã«ãŠã„ã¦ã¯ã‚㨠%s インスタンスã—ã‹å®Ÿè¡Œã§ãã¾ã›ã‚“。"
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "インスタンス %s ã«ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’接続(attach)ã§ãã¾ã›ã‚“。"
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "%s 個ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®èµ·å‹•ã‚’始ã‚ã¾ã™â€¦"
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "VM %s ã«å¯¾ã™ã‚‹ã‚¹ãƒŠãƒƒãƒ—ショットを開始ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "Create Security Group: セキュリティグループ %s を作æˆã—ã¾ã™ã€‚"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "VBD %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "VBD %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "Revoke security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s ã®å–消"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorize security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revoke security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s ã®å–消"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4092,734 +4249,735 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "予期ã—ãªã„エラー発生: %s"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Rebooting instance: インスタンス %s ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Detach volume: ボリューム %s をデタッãƒã—ã¾ã™"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Rebooting instance: インスタンス %s ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "インスタンス %s ã¯å®Ÿè¡Œä¸­ã§ã™ã€‚"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "インスタンス%s: å†èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "snapshotting: インスタンス %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットをå–得中"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "ファイルパス '%s' を埋ã‚込んã§ã„ã¾ã™"
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
#, fuzzy
msgid "Unrescuing"
msgstr "Unrescuing: インスタンス %s をアンレスキューã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "snapshotting: インスタンス %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットをå–得中"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "retrieving diagnostics: インスタンス %s ã®è¨ºæ–­æƒ…報をå–å¾—ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
#, fuzzy
msgid "Inject network info"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
#, fuzzy
msgid "Getting vnc console"
msgstr "コンソールを追加ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "コンソールを追加ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "ボリューム切断: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "ボリュームを未知ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ %s ã‹ã‚‰ãƒ‡ã‚¿ãƒƒãƒã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "ボリューム切断: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Deleting user: ユーザ %s を削除ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Deleting user: ユーザ %s を削除ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4929,18 +5087,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5019,54 +5177,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5083,56 +5257,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5168,32 +5346,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 ""
@@ -5212,16 +5395,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 を割り当ã¦"
@@ -5335,103 +5522,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "dnsmasqã«å¯¾ã—ã¦hupã‚’é€ä¿¡ã—ã¾ã—ãŸãŒ %s ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d ã¯ç„¡åŠ¹ã§ã™ã€‚dnsmasqã‚’å†å®Ÿè¡Œã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "radvd åœæ­¢ãŒ %s 例外を発行ã—ã¾ã—ãŸ"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d ãŒã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ã„ã‚‹ã®ã§ radvd ã‚’å†å®Ÿè¡Œã—ã¦ã„ã¾ã™â€¦"
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "ä¸æ­£ãªãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã§ã™: %s"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "VLANインタフェース %s を開始ã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "プライベートキーã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "xvp ã®é–‹å§‹ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
@@ -5526,38 +5713,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: nova/network/manager.py:1795
msgid ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®æ•°ã¨VLANã®é–‹å§‹ç•ªå·ã®å’Œã¯ 4094 より大ããã§ãã¾ã›ã‚“。"
-#: nova/network/manager.py:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5593,80 +5780,79 @@ msgstr "å—信: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
@@ -5676,68 +5862,73 @@ msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
msgid "Quantum Error creating security group %s"
msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5749,32 +5940,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5784,17 +5994,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 ""
@@ -5867,21 +6077,102 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "コマンド実行(subprocess): %s"
+#: 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 "コマンド実行çµæžœï¼š %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "コマンド(SSH)を実行: %s"
+
+#: 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
+#, 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: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 ""
@@ -6010,63 +6301,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6095,44 +6391,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 ""
@@ -6379,7 +6675,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6388,36 +6684,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6489,10 +6797,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
@@ -6500,6 +6815,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"
@@ -6535,14 +6855,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 ""
@@ -6612,46 +6932,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 ""
@@ -6704,80 +7024,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "シングルトンをインスタンス化ã—よã†ã¨ã—ã¾ã—ãŸã€‚"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6790,61 +7072,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "インスタンス %s ã¯å®Ÿè¡Œä¸­ã§ã™ã€‚"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "インスタンス %s を終了ã—ãŸå¾Œã§ã™ã€‚"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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 +7146,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,35 +7223,73 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7084,19 +7414,19 @@ msgstr ""
"標準出力: %(stdout)r\n"
"標準エラー出力: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7264,15 +7594,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7330,97 +7660,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, fuzzy, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr "インスタンス %(inst_name)s: イメージ %(img_id)s ã¸ã®ãƒ‡ãƒ¼ã‚¿åŸ‹ã‚è¾¼ã¿ã®ã‚¨ãƒ©ãƒ¼ã‚’無視ã—ã¦ã„ã¾ã™ (%(e)s)"
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "ファイルシステム %s ã®ãƒžã‚¦ãƒ³ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "ファイルシステム %s ã®ãƒžã‚¦ãƒ³ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, fuzzy, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr "インスタンス %(inst_name)s: イメージ %(img_id)s ã¸ã®ãƒ‡ãƒ¼ã‚¿åŸ‹ã‚è¾¼ã¿ã®ã‚¨ãƒ©ãƒ¼ã‚’無視ã—ã¦ã„ã¾ã™ (%(e)s)"
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7756,7 +8086,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7771,24 +8101,24 @@ msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–
msgid "Host IP address is: %s"
msgstr "Release address: アドレス %s を開放ã—ã¾ã™ã€‚"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7929,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 "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: 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 ""
@@ -8112,12 +8442,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: 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' を埋ã‚込んã§ã„ã¾ã™"
@@ -8283,7 +8613,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8317,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 "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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "インスタンス%s: å†èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: 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:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8555,73 +8885,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8629,50 +8959,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8682,67 +9012,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "%s ã®èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8775,153 +9105,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8940,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. "
@@ -8948,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 ""
@@ -9034,12 +9364,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9051,70 +9381,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9138,84 +9468,84 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "コマンド実行(subprocess): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9238,7 +9568,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 ""
@@ -9306,74 +9636,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "raw instanceを生æˆã—ã¾ã™ã€‚"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "インスタンス %s ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’生æˆã—ã¾ã™ã€‚"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "raw instanceを生æˆã—ã¾ã™ã€‚"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, fuzzy, python-format
msgid "Instance '%s' failed to boot"
msgstr "インスタンス%s: å†èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "snapshotting: インスタンス %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットをå–得中"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "%s 個ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®èµ·å‹•ã‚’始ã‚ã¾ã™â€¦"
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "%s 個ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®èµ·å‹•ã‚’始ã‚ã¾ã™â€¦"
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9389,27 +9719,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 ""
@@ -9475,18 +9805,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 ""
@@ -9826,54 +10156,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9996,107 +10326,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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"
@@ -10115,24 +10449,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "プライベートキーã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "例外 %s ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
@@ -10269,72 +10603,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "VBD %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10343,305 +10677,298 @@ msgstr ""
"%(sr_ref)s 上㫠VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, "
"%(read_only)s) を作æˆã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "VM %s ã«å¯¾ã™ã‚‹ã‚¹ãƒŠãƒƒãƒ—ショットを開始ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: 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:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s ã¯ä¾ç„¶ã¨ã—ã¦å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "SR %s ã‚’å†ã‚¹ã‚­ãƒ£ãƒ³ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "VBD %s を接続ã—ã¦ã„ã¾ã™â€¦ "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "仮想ブロックデãƒã‚¤ã‚¹(VBD) %s ã®æŽ¥ç¶šãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "%s ã«å¯¾ã—㦠pygrub を実行ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Xen Kernel %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: 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:2015
+#: 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 "
@@ -10649,55 +10976,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "パーティションテーブル %s ã®æ›¸ãè¾¼ã¿ãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10707,203 +11041,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "raw instanceを生æˆã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
#, fuzzy
msgid "Starting VM"
msgstr "xvp ã‚’å†èµ·å‹•ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "VM %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットã¨ã‚¢ãƒƒãƒ—ロードãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "インスタンス終了処ç†ã‚’開始ã—ã¾ã™ã€‚"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "xvp ã‚’å†èµ·å‹•ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr "カーãƒãƒ«/RAMディスクファイルãŒå‰Šé™¤ã•ã‚Œã¾ã—ãŸ"
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
#, fuzzy
msgid "Destroying VM"
msgstr "xvp ã‚’å†èµ·å‹•ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, 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:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10984,7 +11328,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 "
@@ -10992,7 +11336,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"
@@ -11032,16 +11376,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..dd8d08b79
--- /dev/null
+++ b/nova/locale/ka_GE/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/ko/LC_MESSAGES/nova.po b/nova/locale/ko/LC_MESSAGES/nova.po
index a6463b245..30f2b0401 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr "플래그 경로: %s"
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -939,9 +939,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1009,510 +1009,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— 볼륨장착 í•  수 없습니다"
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/hooks.py:62
-#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
-msgstr ""
-
-#: nova/hooks.py:70
+#: nova/exception.py:1203
#, 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"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
-msgstr ""
-
-#: nova/quota.py:966
+#: nova/exception.py:1208
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1214
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1218
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1222
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1226
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1597,130 +1550,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,69 +1678,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1801,7 +1755,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1811,7 +1765,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1843,137 +1797,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2013,46 +1967,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2060,63 +2054,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2126,21 +2121,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 +2150,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,14 +2170,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2220,13 +2220,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2235,20 +2235,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2261,12 +2264,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2274,17 +2277,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2320,10 +2323,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 ""
@@ -2349,220 +2354,294 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2649,7 +2728,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2669,17 +2748,17 @@ msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2732,28 +2811,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 ""
@@ -2834,27 +2918,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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: 스냅샷 저장중"
@@ -2903,7 +2987,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2951,7 +3035,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2984,29 +3068,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3031,11 +3115,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 ""
@@ -3146,16 +3225,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 ""
@@ -3165,7 +3244,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3182,16 +3261,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3203,11 +3282,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 ""
@@ -3225,174 +3304,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3414,7 +3555,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "%s ë³¼ë¥¨ì„ ì°¾ì„수 없습니다"
@@ -3434,271 +3575,271 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3778,243 +3919,259 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— 볼륨장착 í•  수 없습니다"
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "%s ë³¼ë¥¨ì„ ì°¾ì„수 없습니다"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "%s ë³¼ë¥¨ì„ ì°¾ì„수 없습니다"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4048,722 +4205,722 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "%s 볼륨 íƒˆì°©ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— 볼륨장착 í•  수 없습니다"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "볼륨 탈착: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— 볼륨장착 í•  수 없습니다"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "볼륨 탈착: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4873,18 +5030,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4962,54 +5119,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5026,56 +5199,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5111,32 +5288,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 ""
@@ -5155,15 +5337,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 ""
@@ -5277,103 +5463,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5468,38 +5654,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5534,79 +5720,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5616,65 +5801,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5686,32 +5876,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5721,17 +5930,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 ""
@@ -5804,21 +6013,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5947,63 +6236,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6032,44 +6326,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 ""
@@ -6311,7 +6605,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6320,36 +6614,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6421,10 +6727,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
@@ -6432,6 +6745,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"
@@ -6467,14 +6785,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 ""
@@ -6544,46 +6862,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 ""
@@ -6636,79 +6954,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6721,61 +7002,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6785,22 +7076,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"
@@ -6862,35 +7153,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7015,19 +7343,19 @@ msgstr ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7195,15 +7523,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7261,97 +7589,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7686,7 +8014,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7700,24 +8028,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7858,50 +8186,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 ""
@@ -8040,12 +8368,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— 볼륨장착 í•  수 없습니다"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8210,7 +8538,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8244,235 +8572,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8480,73 +8808,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8554,50 +8882,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8607,67 +8935,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8700,153 +9028,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8865,7 +9193,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. "
@@ -8873,17 +9201,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 ""
@@ -8959,12 +9287,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8976,70 +9304,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9063,84 +9391,84 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9163,7 +9491,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 ""
@@ -9231,74 +9559,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9314,27 +9642,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 ""
@@ -9400,18 +9728,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 ""
@@ -9744,54 +10072,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 +10242,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 +10362,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10184,374 +10516,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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,55 +10884,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10617,198 +10949,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10888,7 +11230,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 "
@@ -10896,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 ""
@@ -10936,16 +11278,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/ko_KR/LC_MESSAGES/nova.po b/nova/locale/ko_KR/LC_MESSAGES/nova.po
index 423155ebe..ba29c6d3c 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -84,7 +84,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -168,8 +168,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Keypair ë°ì´í„°ê°€ 맞지 않습니다"
@@ -185,8 +184,9 @@ msgstr "ìž…ë ¥ ê°’ì´ ì •í™•í•˜ì§€ 않습니다."
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -939,9 +939,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1009,510 +1009,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1597,130 +1550,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,69 +1678,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1801,7 +1755,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1811,7 +1765,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1843,137 +1797,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2013,46 +1967,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2060,63 +2054,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2126,21 +2121,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 +2150,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,14 +2170,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2220,13 +2220,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2235,20 +2235,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2261,12 +2264,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2274,17 +2277,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2320,10 +2323,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 ""
@@ -2349,220 +2354,294 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "ìž…ë ¥ ê°’ì´ ì •í™•í•˜ì§€ 않습니다."
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2649,7 +2728,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2669,17 +2748,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2731,28 +2810,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 ""
@@ -2831,27 +2915,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2899,7 +2983,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2947,7 +3031,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2980,29 +3064,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3027,11 +3111,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 ""
@@ -3142,16 +3221,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 ""
@@ -3161,7 +3240,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3178,16 +3257,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3199,11 +3278,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 ""
@@ -3221,174 +3300,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3410,7 +3551,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3430,270 +3571,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3773,242 +3914,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4042,714 +4199,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4859,18 +5016,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4948,54 +5105,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5012,56 +5185,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5097,32 +5274,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 ""
@@ -5141,15 +5323,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 ""
@@ -5263,103 +5449,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5454,38 +5640,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5520,79 +5706,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5602,65 +5787,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5672,32 +5862,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5707,17 +5916,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 ""
@@ -5790,21 +5999,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5933,63 +6222,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6018,44 +6312,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 ""
@@ -6297,7 +6591,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6306,36 +6600,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6407,10 +6713,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
@@ -6418,6 +6731,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"
@@ -6453,14 +6771,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 ""
@@ -6530,46 +6848,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 ""
@@ -6622,79 +6940,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6707,61 +6988,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6771,22 +7062,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"
@@ -6848,35 +7139,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -6996,19 +7324,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7176,15 +7504,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7242,97 +7570,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7666,7 +7994,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7680,24 +8008,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7838,50 +8166,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 ""
@@ -8018,12 +8346,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8181,7 +8509,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8215,235 +8543,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8451,73 +8779,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8525,50 +8853,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8578,67 +8906,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8671,153 +8999,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8836,7 +9164,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. "
@@ -8844,17 +9172,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 ""
@@ -8930,12 +9258,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8947,70 +9275,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9034,83 +9362,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9133,7 +9461,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 ""
@@ -9201,74 +9529,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9284,27 +9612,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 ""
@@ -9370,18 +9698,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 ""
@@ -9714,54 +10042,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9882,107 +10210,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -9998,24 +10330,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10152,374 +10484,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10527,55 +10852,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10585,197 +10917,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "ì¸ìŠ¤í„´ìŠ¤ 재시작 실패"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10855,7 +11197,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 "
@@ -10863,7 +11205,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 ""
@@ -10903,16 +11245,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..2035fee89
--- /dev/null
+++ b/nova/locale/ms/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/nb/LC_MESSAGES/nova.po b/nova/locale/nb/LC_MESSAGES/nova.po
index d75e603d6..95fc1ca05 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -85,7 +85,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr "En ukjent feil oppsto."
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -169,8 +169,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -186,8 +185,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -200,7 +200,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Ugyldig IP protokoll %(protocol)s."
@@ -940,10 +940,10 @@ msgstr ""
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:898 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
#, python-format
@@ -1010,281 +1010,314 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr "Kvote overskredet"
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, 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:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Forventet objekt av typen: %s"
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1295,7 +1328,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 ""
@@ -1315,205 +1348,125 @@ msgstr ""
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
-msgid "Full set of CONF:"
-msgstr ""
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr ""
-
-#: 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 ""
-#: 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Resultat var %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr "Forventet objekt av typen: %s"
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "Tjenernavn er ikke en streng eller unicode"
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1598,130 +1551,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr "Signatur ikke gitt"
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1731,69 +1679,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Lag nøkkelpar %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr "Importer nøkkel %s"
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Slett nøkkelpar %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Ugyldig IP protokoll %(protocol)s."
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
msgid "No rule for the specified parameters."
msgstr "Ingen regel for de angitte parametrene."
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1802,7 +1756,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1812,7 +1766,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1844,137 +1798,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "bruker eller gruppe ikke spesifisert"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "kun gruppe \"all\" er støttet"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2015,46 +1969,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2062,63 +2056,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2128,21 +2123,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 +2152,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,14 +2172,14 @@ 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:346
+#: 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
-#, python-format
-msgid "Failed to load extension %(ext_name)s: %(exc)s"
+#: 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"
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2222,13 +2222,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr "Ingen slik handling: %s"
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2237,20 +2237,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2263,12 +2266,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2276,17 +2279,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2322,10 +2325,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 ""
@@ -2351,221 +2356,296 @@ msgstr "Tjener eksisterer ikke"
msgid "Metadata item was not found"
msgstr "Metadata element ble ikke funnet"
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Tjeneste %(service_id)s ble ikke funnet."
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr "Feil nettverks-format: mangler %s"
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr "Feil nettverks-format"
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr "Tjenernavn er ikke definert"
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "Ressurs ble ikke funnet."
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Ugyldig snapshot"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2652,7 +2732,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2672,17 +2752,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2734,28 +2814,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 ""
@@ -2835,27 +2920,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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"
@@ -2904,7 +2989,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2952,7 +3037,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2985,29 +3070,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3032,11 +3117,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 ""
@@ -3149,16 +3229,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 ""
@@ -3168,7 +3248,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "Ikke nok parametere for å lage en gyldig regel."
@@ -3186,16 +3266,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3207,11 +3287,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 ""
@@ -3229,174 +3309,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: 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:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
-#, 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3418,7 +3559,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Kan ikke finne adressen %r"
@@ -3438,272 +3579,272 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "Tildel adresse"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "Nettverk ikke funnet"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "Tjeneste %(service_id)s ble ikke funnet."
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "Tjeneste %(service_id)s ble ikke funnet."
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3783,242 +3924,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4052,714 +4209,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Nettverk ikke funnet"
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Kunne ikke hente metadata for ip:% s"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4869,18 +5026,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4958,54 +5115,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5022,56 +5195,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5107,32 +5284,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 ""
@@ -5151,15 +5333,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 ""
@@ -5273,103 +5459,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5464,38 +5650,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5531,80 +5717,79 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5614,65 +5799,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5684,32 +5874,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5719,17 +5928,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 ""
@@ -5802,21 +6011,101 @@ msgstr ""
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 "Resultat var %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr "%r feilet. Prøver på nytt."
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5945,63 +6234,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6030,44 +6324,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 ""
@@ -6310,7 +6604,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6319,36 +6613,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6420,10 +6726,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
@@ -6431,6 +6744,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"
@@ -6466,14 +6784,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 ""
@@ -6543,47 +6861,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 ""
@@ -6636,80 +6954,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6722,61 +7002,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6786,22 +7076,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"
@@ -6863,35 +7153,73 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7012,19 +7340,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7193,15 +7521,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7259,97 +7587,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7683,7 +8011,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7697,24 +8025,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr "Frigjør adresse %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7855,50 +8183,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 ""
@@ -8035,12 +8363,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8198,7 +8526,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8232,237 +8560,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Ingen nettverk definert."
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Ingen nettverk definert."
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8470,73 +8798,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8544,50 +8872,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8597,67 +8925,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8690,153 +9018,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8855,7 +9183,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. "
@@ -8863,17 +9191,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 ""
@@ -8949,12 +9277,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8966,70 +9294,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: 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:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9053,83 +9381,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9152,7 +9480,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 ""
@@ -9220,74 +9548,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9303,27 +9631,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 ""
@@ -9389,18 +9717,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 ""
@@ -9733,54 +10061,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9903,107 +10231,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10019,24 +10351,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10173,375 +10505,368 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: 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:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10549,55 +10874,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10607,198 +10939,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Feil nettverks-format"
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10878,7 +11219,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 "
@@ -10886,7 +11227,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 ""
@@ -10926,16 +11267,19 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ 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..21f634f3c
--- /dev/null
+++ b/nova/locale/nl_NL/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/nova.pot b/nova/locale/nova.pot
index 0879981bc..3622bced8 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.246\n"
+"Project-Id-Version: nova jenkins.nova.propose.translation.update.273\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2013-05-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -938,9 +938,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1008,510 +1008,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
-#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
-msgstr ""
-
-#: nova/hooks.py:70
+#: nova/exception.py:1203
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Shadow table with name %(name)s already exists."
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"
-msgstr ""
-
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
-msgstr ""
-
-#: nova/quota.py:966
+#: nova/exception.py:1208
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1214
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1218
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1222
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1226
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1596,130 +1549,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,69 +1677,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1800,7 +1754,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1810,7 +1764,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1842,137 +1796,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2012,46 +1966,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2059,63 +2053,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2125,21 +2120,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 ""
@@ -2150,6 +2149,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 ""
@@ -2169,14 +2169,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2219,13 +2219,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2234,20 +2234,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2260,12 +2263,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2273,17 +2276,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2319,10 +2322,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 ""
@@ -2348,220 +2353,293 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2648,7 +2726,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2668,17 +2746,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2730,28 +2808,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 ""
@@ -2830,27 +2913,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2898,7 +2981,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2946,7 +3029,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2979,29 +3062,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3026,11 +3109,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 ""
@@ -3141,16 +3219,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 ""
@@ -3160,7 +3238,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3177,16 +3255,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3198,11 +3276,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 ""
@@ -3220,174 +3298,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3409,7 +3548,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3429,270 +3568,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3772,242 +3911,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4041,714 +4196,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4858,18 +5013,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4947,54 +5102,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5011,56 +5182,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5096,32 +5271,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 ""
@@ -5140,15 +5320,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 ""
@@ -5262,103 +5446,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5453,38 +5637,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5519,79 +5703,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5601,65 +5784,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5671,32 +5859,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5706,17 +5913,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 ""
@@ -5789,21 +5996,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5932,63 +6219,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6017,44 +6309,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 ""
@@ -6296,7 +6588,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6305,36 +6597,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6406,10 +6710,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
@@ -6417,6 +6728,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"
@@ -6452,14 +6768,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 ""
@@ -6529,46 +6845,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 ""
@@ -6621,79 +6937,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6706,61 +6985,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6770,22 +7059,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"
@@ -6847,35 +7136,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -6995,19 +7321,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7175,15 +7501,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7241,97 +7567,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7665,7 +7991,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7679,24 +8005,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7837,50 +8163,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 ""
@@ -8017,12 +8343,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8180,7 +8506,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8214,235 +8540,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8450,73 +8776,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8524,50 +8850,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8577,67 +8903,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8670,153 +8996,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8835,7 +9161,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. "
@@ -8843,17 +9169,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 ""
@@ -8929,12 +9255,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8946,70 +9272,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9033,83 +9359,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9132,7 +9458,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 ""
@@ -9200,74 +9526,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9283,27 +9609,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 ""
@@ -9369,18 +9695,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 ""
@@ -9713,54 +10039,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9881,107 +10207,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -9997,24 +10327,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10151,374 +10481,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10526,55 +10849,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10584,197 +10914,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10854,7 +11193,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 "
@@ -10862,7 +11201,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 ""
@@ -10902,16 +11241,16 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
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..139df62e4
--- /dev/null
+++ b/nova/locale/pt/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/pt_BR/LC_MESSAGES/nova.po b/nova/locale/pt_BR/LC_MESSAGES/nova.po
index 463375c36..761662182 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -84,7 +84,7 @@ msgstr "Localização dos sinalizadores: %s"
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -168,8 +168,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -185,8 +184,9 @@ msgstr "Dados recebidos é inválido"
msgid "Invalid volume"
msgstr "Volume inválido"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -200,7 +200,7 @@ msgstr "Assinatura inválida para usuário %s"
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Protocolo IP %(protocol)s é inválido."
@@ -944,10 +944,10 @@ msgstr ""
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:898 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
#, python-format
@@ -1014,281 +1014,314 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, 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:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, 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:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, 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:1125
#, 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:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, 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:1161
+#: nova/exception.py:1162
#, 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:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, 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:1197
+#: nova/exception.py:1198
#, 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:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "group %s já existe"
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Objeto esperado do tipo: %s"
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1299,7 +1332,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 ""
@@ -1320,206 +1353,125 @@ msgstr ""
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 "Conjunto completo de FLAGS:"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr ""
-
-#: 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 ""
-#: 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Executando o comando (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr "Ambiente não suportado por SSH"
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Resultado foi %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "depuração em retorno de chamada: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Endereço para Link Local não encontrado: %s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "Backend inválido: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr "Objeto esperado do tipo: %s"
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1604,131 +1556,126 @@ msgstr ""
msgid "Too many failed authentications."
msgstr "Muitas falhas de autenticação."
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Falha de Autenticação: %s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Muitas falhas de autenticação."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "ação: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "NotFound lançado: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, fuzzy, python-format
msgid "QuotaError raised: %s"
msgstr "Erro inexperado lançado: %s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "Erro inexperado lançado: %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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 "Ocorreu um erro desconhecido. Por favor tente sua requisição novamente."
-#: nova/api/ec2/apirequest.py:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1738,69 +1685,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Criar par de chaves %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Remover par de chaves %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Protocolo IP %(protocol)s é inválido."
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
msgid "No rule for the specified parameters."
msgstr "Não existe regra para os parâmetros especificados"
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "Esta regra já existe no grupo %s"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Obter saída do console para instância %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Criar volume de %s GB"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1809,7 +1762,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Desanexar volume %s"
@@ -1820,7 +1773,7 @@ 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:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "atributo não suportado: %s"
@@ -1852,140 +1805,140 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Desatribuir endereço %s"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Desatribuir endereço %s"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Desatribuir endereço %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "Começando a terminar instâncias"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Reiniciar instância %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "Removendo o registro da imagem %s"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "usuário ou grupo não especificado"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "apenas o grupo \"all\" é suportado"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "operation_type deve ser add ou remove"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "Atualizando publicidade da imagem %s"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "Instância não existe"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2026,46 +1979,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2073,63 +2066,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2139,21 +2133,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 ""
@@ -2164,6 +2162,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 ""
@@ -2183,14 +2182,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2233,13 +2232,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr "Corpo do pedido está mal formado"
@@ -2248,20 +2247,23 @@ msgstr "Corpo do pedido está mal formado"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Chamando o pai %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2274,12 +2276,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2287,17 +2289,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Assinatura inválida para usuário %s"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Assinatura inválida para usuário %s"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2333,10 +2335,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 ""
@@ -2362,225 +2366,300 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Começando a terminar instâncias"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Host %(host)s não encontrado."
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Ponto de montagem não pode ser traduzido: %s"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Ponto de montagem não pode ser traduzido: %s"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, 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:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, 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:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Falhou ao reiniciar instância"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2667,7 +2746,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2687,17 +2766,17 @@ msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2752,28 +2831,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 ""
@@ -2854,27 +2938,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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."
@@ -2925,7 +3009,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2974,7 +3058,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "Volume não encontrada para a instância %(instance_id)s."
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3008,29 +3092,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "Chamando o pai %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Chamando o pai %s"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3055,11 +3139,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 ""
@@ -3174,16 +3253,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 ""
@@ -3193,7 +3272,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3211,16 +3290,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3234,12 +3313,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 ""
@@ -3257,174 +3336,236 @@ msgstr "vol=%s"
msgid "Delete volume with id: %s"
msgstr "Remover volume com id: %s"
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "Instância %s não encontrada"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: 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:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3447,7 +3588,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr "Executando VPN para %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Não foi possível criar volume"
@@ -3467,278 +3608,278 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "recebido %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "Capturado o erro: %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "instância %s: reset da rede"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "Alocar endereço"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "group %s já existe"
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "Nenhuma rede definida."
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
#, fuzzy
msgid "UUID is required to delete Quantum Networks"
msgstr "%(req)s é necessário para criar a rede."
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Reiniciar instância %r"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "Serviço %(service_id)s não encontrado."
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "Serviço %(service_id)s não encontrado."
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "Erro inexperado lançado: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3819,250 +3960,266 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: 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:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, 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:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Falhou ao reiniciar instância"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "Criar Grupo de Segurança %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Não é possível destruir o VBD %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Não é possível destruir o VBD %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "Revogado entrada do grupo de segurança %s"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Excluir grupo de segurança %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Autorizada entrada do grupo de segurança %s"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revogado entrada do grupo de segurança %s"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4097,733 +4254,734 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Falhou ao reiniciar instância"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Falha ao suspender instância"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Erro inexperado lançado: %s"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: 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:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Capturado o erro: %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Começando a terminar instâncias"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Reconstruindo instância %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Desanexar volume %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Reiniciando a instância %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Reconstruindo instância %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "instância %s: fazendo um snapshot"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr "Removendo imagem %s"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
#, fuzzy
msgid "error setting admin password"
msgstr "Configurar senha do administrador"
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Falha ao suspender instância"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Capturado o erro: %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
#, fuzzy
msgid "Unrescuing"
msgstr "instância %s: desfazendo o resgate"
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Iniciando instância %s"
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "Instância não existe"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instância %s: recuperando os diagnósticos"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "instância %s: reset da rede"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Obter saída do console para instância %s"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
#, fuzzy
msgid "Getting vnc console"
msgstr "Adicionando console"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "Adicionando console"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Desconectando volume da instância desconhecida %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Rede %(network_id)s não foi encontrada."
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Host %(host)s não encontrado."
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Falha ao obter metadados para o ip: %s"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, 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:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Remover volume com id: %s"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "Instância %s não encontrada"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Removendo imagem %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "Iniciando instância %s"
+
#: nova/compute/resource_tracker.py:92
msgid ""
"Host field should not be set on the instance until resources have been "
@@ -4933,18 +5091,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5023,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 "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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5089,56 +5263,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5174,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 ""
@@ -5218,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 "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."
@@ -5341,103 +5528,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: 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:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Backend inválido: %s"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Iniciando a VLAN %s"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Iniciando instância %s"
-#: nova/network/linux_net.py:1459
+#: 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:1495
+#: 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:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Iniciando instância %s"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Removendo o registro da imagem %s"
@@ -5532,38 +5719,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr "Rede já existe!"
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5599,80 +5786,79 @@ msgstr "_remover: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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"
@@ -5682,68 +5868,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:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5755,32 +5946,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5790,17 +6000,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"
@@ -5873,21 +6083,102 @@ msgstr ""
msgid "Running cmd (subprocess): %s"
msgstr "Executando comando (subprocesso): %s"
+#: 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 "Resultado foi %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr "%r falhou. Tentando novamente."
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Executando o comando (SSH): %s"
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr "Ambiente não suportado por SSH"
+
+#: 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
+#, 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: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 ""
@@ -6016,63 +6307,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "Reutilização inválida de uma conexão RPC."
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6101,44 +6397,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 ""
@@ -6386,7 +6682,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6395,36 +6691,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6496,10 +6804,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
@@ -6507,6 +6822,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"
@@ -6542,14 +6862,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 ""
@@ -6619,46 +6939,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 ""
@@ -6711,80 +7031,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "Tentativa de instanciar singleton"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6797,61 +7079,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr "Erro interno"
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6861,22 +7153,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"
@@ -6938,35 +7230,74 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: 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"
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7093,19 +7424,19 @@ msgstr ""
"Saída padrão: %(stdout)r\n"
"Erro: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7274,15 +7605,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7340,97 +7671,97 @@ msgstr "nenhuma partição encontrada"
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "Falhou em montar sistema de arquivo: %s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "Falhou em montar sistema de arquivo: %s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7767,7 +8098,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7782,24 +8113,24 @@ msgstr "Obter saída do console para instância %s"
msgid "Host IP address is: %s"
msgstr "Liberar endereço %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7940,50 +8271,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 ""
@@ -8123,12 +8454,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:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8294,7 +8625,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8328,243 +8659,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Falhou ao reiniciar instância"
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Nenhuma rede definida."
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Nenhuma rede definida."
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "volume %s: criado com sucesso"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Falhou ao reiniciar instância"
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: 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:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8572,73 +8903,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8646,50 +8977,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8699,67 +9030,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: 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:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8792,153 +9123,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "Iniciando a Bridge para %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8957,7 +9288,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. "
@@ -8965,17 +9296,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 ""
@@ -9051,12 +9382,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9068,70 +9399,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9155,85 +9486,85 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Executando comando (subprocesso): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9256,7 +9587,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 ""
@@ -9324,74 +9655,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "Instância não encontrada"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "Iniciando a Bridge para %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Iniciando instância %s"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Iniciando instância %s"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "instância %s: fazendo um snapshot"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "Começando a terminar instâncias"
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "Começando a terminar instâncias"
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9407,27 +9738,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 ""
@@ -9493,18 +9824,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 ""
@@ -9842,54 +10173,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -10012,107 +10343,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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"
@@ -10128,24 +10463,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10284,73 +10619,73 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_criar: %s"
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: 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:366
+#: 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:371
+#: 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:376
+#: 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:387
+#: 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:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10359,306 +10694,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:479
+#: 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:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: 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:1291
+#: 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:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: 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:1521
+#: 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:1548
+#: 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:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Conectando VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: 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:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: 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:2011
+#: 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:2013
+#: 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:2015
+#: 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 "
@@ -10666,55 +10994,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "Atualizando agente para %s"
@@ -10724,199 +11059,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Iniciando instância %s"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Falha ao suspender instância"
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Falhou ao reiniciar instância"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, 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:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10997,7 +11342,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 "
@@ -11005,7 +11350,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"
@@ -11045,16 +11390,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..f8c312f00
--- /dev/null
+++ b/nova/locale/ro/LC_MESSAGES/nova.po
@@ -0,0 +1,11258 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 ""
+
diff --git a/nova/locale/ru/LC_MESSAGES/nova.po b/nova/locale/ru/LC_MESSAGES/nova.po
index bb486eb85..5e6485973 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -88,7 +88,7 @@ msgstr "РаÑположение флагов: %s"
msgid "An unknown exception occurred."
msgstr "Обнаружено неизвеÑтное иÑключение."
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -175,8 +175,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -192,8 +191,9 @@ msgstr ""
msgid "Invalid volume"
msgstr "ÐедопуÑтимый том"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr "ÐедопуÑтимые метаданные"
@@ -207,7 +207,7 @@ msgstr "Ðеправильный ключ метаданных"
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "ÐедопуÑтимый протокол IP %(protocol)s."
@@ -965,10 +965,10 @@ msgstr ""
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:898 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
#, python-format
@@ -1037,286 +1037,319 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr "Образ больше, чем допуÑтимо Ð´Ð»Ñ Ñтого типа копии"
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr "ÐедоÑтаточно памÑти на узле Ñети compute Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка %(uuid)s."
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr "ДопуÑтимый узел не найден. %(reason)s"
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr "Превышена квота"
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:997
+#: nova/exception.py:993
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, fuzzy, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
#, fuzzy
msgid "Maximum number of key pairs exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1021
+#: nova/exception.py:1017
#, fuzzy
msgid "Maximum number of security groups or rules exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, fuzzy, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr "Ðевозможно назначить пароль админиÑтратора. ÐšÐ¾Ð¿Ð¸Ñ %s не выполнÑетÑÑ"
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена."
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Том %(volume_id)s не найден."
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, 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:1083
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "Образ %(image_id)s не найден."
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "Получение образа %(image)s"
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "Получение образа %(image)s"
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена"
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Выполнение запуÑка копий"
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Выполнение запуÑка копий"
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, fuzzy, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "Квота проекта %(project_id)s не найдена."
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, fuzzy, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "Проект %(project_id)s не найден."
-#: nova/exception.py:1165
+#: nova/exception.py:1166
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "set_admin_password не реализован в Ñтой драйвере."
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не переведена в режим воÑÑтановлениÑ"
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не переведена в режим воÑÑтановлениÑ"
+#: nova/exception.py:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "Тип копии %(name)s уже ÑущеÑтвует."
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "ОжидалÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚ типа: %s"
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1327,7 +1360,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 ""
@@ -1348,206 +1381,125 @@ msgstr ""
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 ""
-
-#: 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 "ЗапуÑк узла Ñети (верÑÐ¸Ñ %(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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Выполнение команды (SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr "Среда не поддерживаетÑÑ Ñ Ð¸Ñпользованием SSH"
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr "process_input не поддерживаетÑÑ Ñ Ð¸Ñпользованием SSH"
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Результат %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "отладка в обратном вызове: %s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "ÐедопуÑтимый внутренний интерфейÑ: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr "ОжидалÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚ типа: %s"
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ server_string: %s"
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc: '%(name)s' занÑла %(total_time).2f Ñ."
-#: nova/utils.py:876
+#: nova/utils.py:800
#, fuzzy, python-format
msgid "Reloading cached file %s"
msgstr "Выгрузка образа %s"
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, fuzzy, python-format
msgid "Could not remove tmpdir: %s"
msgstr "Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð°: %s"
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1632,135 +1584,130 @@ msgstr ""
msgid "Too many failed authentications."
msgstr "Слишком много неудачных попыток аутентификации."
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Ошибка аутентификации: %s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Слишком много неудачных попыток аутентификации."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "дейÑтвие: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr ""
"Ðеавторизированный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð»ÐµÑ€Ð°=%(controller)s и "
"дейÑтвиÑ=%(action)s"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1772,70 +1719,76 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr "Создать Ñнимок тома %s"
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, fuzzy, python-format
msgid "Could not find key pair(s): %s"
msgstr "Ошибка Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð»Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ключа: %s"
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "Создание пары ключей %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr "Импортировать ключ %s"
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "Удаление пары ключей %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, fuzzy, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr "ÐедоÑтаточно параметров Ð´Ð»Ñ Ñбора правильного правила."
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "ÐедопуÑтимый протокол IP %(protocol)s."
+
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "Это правило уже ÑущеÑтвует в группе %s"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "Получить конÑольный вывод Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr "Создать том из Ñнимка %s"
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Создание раздела %s ГБ"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
#, fuzzy
msgid "Delete Failed"
msgstr "Ошибка ÑозданиÑ"
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr "Подключить том %(volume_id)s Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s на %(device)s"
@@ -1845,7 +1798,7 @@ msgstr "Подключить том %(volume_id)s Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_i
msgid "Attach Failed."
msgstr "Ошибка ÑозданиÑ"
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "ОтÑоединить том %s"
@@ -1856,7 +1809,7 @@ msgid "Detach Volume Failed."
msgstr "ОтÑоединить том %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "аттрибут не поддерживаетÑÑ: %s"
@@ -1889,142 +1842,142 @@ msgstr "Ðевозможно найти Ð°Ð´Ñ€ÐµÑ %r"
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %(public_ip)s копии %(instance_id)s"
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Ðевозможно найти Ð°Ð´Ñ€ÐµÑ %r"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Ðевозможно найти Ð°Ð´Ñ€ÐµÑ %r"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "ИÑключить Ð°Ð´Ñ€ÐµÑ %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr "Образ должен быть доÑтупен"
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "Выполнение Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "Перезагрузить копию %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr "Выполнение оÑтановки копий"
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr "Выполнение запуÑка копий"
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "ИÑключение региÑтрации образа %s"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "не указан пользователь или группа"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ группа \"вÑе(all)\""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "Обновление оÑведомлённоÑти об образе %s"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "Ðевозможно оÑтановить копию в течении %d Ñ."
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
#, fuzzy
msgid "Expecting a list of resources"
msgstr "Перечень копий"
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ - %s не предÑтавлена"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "Перечень копий"
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
#, fuzzy
msgid "Invalid CIDR"
msgstr "ÐедопуÑтимый cidr %(cidr)s."
@@ -2066,36 +2019,36 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
#, fuzzy
msgid "Invalid proxy request signature."
msgstr "ÐедопуÑтимый запроÑ: %s"
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: 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:182 nova/api/openstack/__init__.py:292
+#: 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 "
@@ -2104,11 +2057,51 @@ msgstr ""
"РаÑширение %(ext_name)s: Ðевозможно раÑширить реÑÑƒÑ€Ñ %(collection)s: Ðет "
"такого реÑурÑа"
-#: nova/api/openstack/__init__.py:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2116,64 +2109,65 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr "маркер [%s] не найден"
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr "href %s не Ñодержит верÑию"
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
#, fuzzy
msgid "Invalid image metadata"
msgstr "ÐедопуÑтимые метаданные"
-#: nova/api/openstack/common.py:361
+#: nova/api/openstack/common.py:362
#, python-format
msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
msgstr "Ðевозможно '%(action)s', когда ÐºÐ¾Ð¿Ð¸Ñ Ð² %(attr)s %(state)s"
-#: nova/api/openstack/common.py:364
-#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+#: nova/api/openstack/common.py:366
+#, fuzzy, python-format
+msgid "Instance is in an invalid state for '%s'"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð² недопуÑтимом ÑоÑтоÑнии Ð´Ð»Ñ '%(action)s'"
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr "Отклонение запроÑа Ñнимка, Ñнимки в данный момент отключены"
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr "Снимки копии в наÑтоÑщий момент недопуÑтимы."
@@ -2183,21 +2177,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 ""
@@ -2208,6 +2206,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 ""
@@ -2227,14 +2226,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "Ошибка загрузки раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %(ext_factory)s: %(exc)s"
-#: nova/api/openstack/extensions.py:346
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
-#, python-format
-msgid "Failed to load extension %(ext_name)s: %(exc)s"
+#: 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"
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2277,13 +2276,13 @@ msgstr "ПуÑтое тело предоÑтавлено в запроÑе"
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr "Ðеправильное тело запроÑа"
@@ -2292,20 +2291,23 @@ msgstr "Ðеправильное тело запроÑа"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "ВыполнÑетÑÑ Ð²Ñ‹Ð·Ð¾Ð² getter %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Ðе поддерживаемый тип Ñодержимого"
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2318,12 +2320,12 @@ msgstr "Ñлемент не ÑвлÑетÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ¾Ð¼"
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2331,17 +2333,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr "Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð´Ð¸Ñпетчера раÑширений."
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "Ðе допуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "Ðе допуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2377,10 +2379,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 "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ ÑвлÑетÑÑ ÑƒÑ‡Ð°Ñтником заданной Ñети"
@@ -2408,227 +2412,302 @@ msgstr "Сервер не ÑущеÑтвует"
msgid "Metadata item was not found"
msgstr "Элемент метаданных не найден"
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Выполнение запуÑка копий"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Узел %(host)s не найден."
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ найдена"
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
#, fuzzy
msgid "Unknown argment : port"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ°: %r"
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, fuzzy, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr "ÐедопуÑтимый Ñетевой формат: Ñетевой uuid имеет неправильный формат (%s)"
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr "ÐедопуÑтимый Ñетевой формат: Ñетевой uuid имеет неправильный формат (%s)"
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "ÐедопуÑтимый фикÑированный IP-Ð°Ð´Ñ€ÐµÑ (%s)"
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Дубликаты Ñетей (%s) не разрешены"
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr "ÐедопуÑтимый Ñетевой формат: отÑутÑтвует %s"
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr "ÐедопуÑтимый Ñетевой формат"
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr "Содержимое данных Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может быть дешифровано"
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr "Ð˜Ð¼Ñ Ñервера не задано"
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr "ПредоÑтавлен недопуÑтимый flavorRef."
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr "Ðевозможно найти запрошенный образ"
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr "ПредоÑтавлен недопуÑтимый key_name."
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Точка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ðµ может быть переведена: %s"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Точка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ðµ может быть переведена: %s"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr "С копией не производилоÑÑŒ изменение размера."
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена."
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr "ОтÑутÑтвует аргумент типа 'type' Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸"
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
#, fuzzy
msgid "Resize requires a flavor change."
msgstr "Изменение размера требует Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÑ‘Ð¼Ð°."
-#: nova/api/openstack/compute/servers.py:1118
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
msgid "Missing imageRef attribute"
msgstr "ОтÑутÑтвует атрибут imageRef"
-#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr "ОтÑутÑтвует атрибут flavorRef"
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr "adminPass не был задан"
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr "ÐедопуÑтимый adminPass"
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Ошибка перезагрузки копии"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° имеет недопуÑтимый атрибут 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr "ЗапроÑÑ‹ изменение размера требуют атрибут 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
-#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, fuzzy, python-format
+msgid "Removing options '%s' from query"
msgstr "Удаление параметров '%(unk_opt_str)s' из запроÑа"
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2715,7 +2794,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2734,19 +2813,19 @@ msgid "Compute.api::resetState %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
-#, python-format
-msgid "Cannot show aggregate: %(id)s"
-msgstr ""
+#, fuzzy, python-format
+msgid "Cannot show aggregate: %s"
+msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð°: %(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, fuzzy, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð°: %(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:127
-#, python-format
-msgid "Cannot delete aggregate: %(id)s"
-msgstr ""
+#, fuzzy, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð°: %(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:140
#, python-format
@@ -2801,30 +2880,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 ""
@@ -2907,27 +2991,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, fuzzy, python-format
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 не найден."
@@ -2978,7 +3062,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -3029,7 +3113,7 @@ msgstr ""
"%(instance_id)s"
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3063,29 +3147,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr "Перевод узла %(host)s в %(state)s."
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "ВыполнÑетÑÑ Ð²Ñ‹Ð·Ð¾Ð² getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Обновление ÑоÑтоÑÐ½Ð¸Ñ ÑƒÐ·Ð»Ð°"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3110,11 +3194,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"
@@ -3231,16 +3310,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 ""
@@ -3250,7 +3329,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "ÐедоÑтаточно параметров Ð´Ð»Ñ Ñбора правильного правила."
@@ -3269,16 +3348,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:356
#, 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:440
msgid "Security group not specified"
msgstr "Группа безопаÑноÑти не задана"
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr "Ðаименование группы безопаÑноÑти не может отÑутÑтвовать"
@@ -3292,12 +3371,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 "Ошибка аутентификации"
@@ -3316,174 +3395,236 @@ msgstr "vol=%s"
msgid "Delete volume with id: %s"
msgstr "Удалить том Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼: %s"
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %s не найдена."
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: nova/api/openstack/compute/contrib/volumes.py:380
#, fuzzy, python-format
msgid "Bad volumeId format: volumeId is not in proper format (%s)"
msgstr "ÐедопуÑтимый Ñетевой формат: Ñетевой uuid имеет неправильный формат (%s)"
-#: nova/api/openstack/compute/contrib/volumes.py:396
+#: 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 "ПриÑоединить том %(volume_id)s к копии %(server_id)s на %(device)s"
-#: nova/api/openstack/compute/contrib/volumes.py:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr "Удалить Ñнимок Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼: %s"
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr "Создать Ñнимок из тома %s"
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "не определен метод Ð´Ð»Ñ ÑообщениÑ: %s"
-#: nova/cells/messaging.py:424
+#: 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:503
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "не определен метод Ð´Ð»Ñ ÑообщениÑ: %s"
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, fuzzy, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr "Выгрузка образа %s"
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3506,7 +3647,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr "ЗапуÑк VPN Ð´Ð»Ñ %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "Ðевозможно Ñоздать том"
@@ -3526,281 +3667,281 @@ msgstr "Ñлемент не ÑвлÑетÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ¾Ð¼"
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
#, fuzzy
msgid "leasing ip"
msgstr "Создание изображениÑ"
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
#, fuzzy
msgid "releasing ip"
msgstr "Создание изображениÑ"
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "получено %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "Ошибка БД: %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "ВоÑÑтановление Ñети"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "Выделить адреÑ"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "Тип тома %(name)s уже ÑущеÑтвует."
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr "IPv4"
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr "IPv6"
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr "проект"
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "Сеть не найдена"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
#, fuzzy
msgid "UUID is required to delete Quantum Networks"
msgstr "%(req)s необходимо Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñети."
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "Выполнение оÑтановки копий"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "Служба %(service_id)s не найдена."
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "Служба %(service_id)s не найдена."
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "ÐÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
#, fuzzy
msgid "PROJECT"
msgstr "проект"
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3882,26 +4023,36 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr "Превышена квота копий. Ð’Ñ‹ можете запуÑтить только %s копий Ñтого типа."
-#: nova/compute/api.py:297
+#: 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:317
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
@@ -3910,97 +4061,97 @@ msgstr ""
"Превышена квота Ð´Ð»Ñ %(pid)s, попытка назначить %(num_metadata)s ÑвойÑтв "
"метаданных"
-#: nova/compute/api.py:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Ðевозможно приÑоединить том Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "ВыполнÑет запуÑк %s копий..."
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Выполнение Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "Тип копии %(instance_type_id)s не найден."
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Выполнение Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, fuzzy, python-format
msgid "instance's host %s is down, deleting from database"
msgstr "ОтÑутÑтвует узел Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s, немедленное удаление"
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Выполнение запуÑка копий"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Будет Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° завершить работу %s"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Попытка оÑтановить %s"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "Попытка запуÑтить %s"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr "ПоиÑк по: %s"
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "ЗапуÑк Ñнимка Ð´Ð»Ñ Ð’Ðœ %s"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -4009,62 +4160,63 @@ msgstr ""
"УÑтаревший тип копии %(current_instance_type_name)s, новый тип копии "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, 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:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Будет Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° завершить работу %s"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr "Группа безопаÑноÑти %s не может быть пуÑтой."
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, fuzzy, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
@@ -4073,69 +4225,74 @@ msgstr ""
"Значение (%s) Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° GroupName недопуÑтимо. Длина превышает "
"макÑимально допуÑтимое значение 255."
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "Создать группу безопаÑноÑти %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr "Группа безопаÑноÑти %s уже ÑущеÑтвует"
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Ðевозможно ликвидировать vbd %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Ðевозможно ликвидировать vbd %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "Группа безопаÑноÑти (%s) не найдена"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr "Правило (%s) не найдено"
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
#, fuzzy
msgid "Quota exceeded, too many security group rules."
msgstr "Добавление правила группы безопаÑноÑти: %r"
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4170,330 +4327,317 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr "Ошибка БД: %s"
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ñ‚Ð¸Ð¿Ð° %s не найдена Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ"
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Ошибка перезагрузки копии"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
#, fuzzy
msgid "Hypervisor driver does not support resume guests"
msgstr "Драйвер гипервизора не поддерживает правила брандмауÑра"
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Ошибка приоÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "Драйвер гипервизора не поддерживает правила брандмауÑра"
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Ðепредвиденный код ÑоÑтоÑниÑ"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Выполнение запуÑка копий"
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Ошибка БД: %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Выполнение запуÑка копий"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, fuzzy, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "ПропуÑк DiskNotFound: %s"
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "завершение работы bdm %s"
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s. УÑтановка ÑоÑтоÑÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ vm_state на ERROR"
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "Обновление Ñборки %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, fuzzy, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr "%(path)s раÑполагаетÑÑ Ð½Ð° общедоÑтупном накопителе: %(reason)s"
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Создать Ñнимок из тома %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "Перезагрузка копии %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, fuzzy, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
@@ -4502,22 +4646,22 @@ msgstr ""
"попытка перезагрузки не выполнÑемой копии: %(instance_uuid)s (ÑоÑтоÑние: "
"%(state)s ожидалоÑÑŒ: %(running)s)"
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Обновление Ñборки %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ включена"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: выполнение Ñнимка"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, fuzzy, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
@@ -4526,224 +4670,229 @@ msgstr ""
"попытка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñнимка не выполнÑемой копии: %(instance_uuid)s "
"(ÑоÑтоÑние: %(state)s ожидалоÑÑŒ: %(running)s)"
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "Ðайдено %(num_images)d образов (ротациÑ: %(rotation)d)"
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr "Удаление образа %s"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr "Ðевозможно назначить пароль админиÑтратора. ÐšÐ¾Ð¿Ð¸Ñ %s не выполнÑетÑÑ"
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
#, fuzzy
msgid "Root password set"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %s: Ðазначение админиÑтративного паролÑ"
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
#, fuzzy
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr "set_admin_password не реализован в Ñтой драйвере."
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, fuzzy, python-format
msgid "set_admin_password failed: %s"
msgstr "set_admin_password не реализован в Ñтой драйвере."
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
#, fuzzy
msgid "error setting admin password"
msgstr "Ошибка Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора"
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Ошибка приоÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Ошибка БД: %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "%s. УÑтановка ÑоÑтоÑÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ vm_state на ERROR"
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ ÑущеÑтвует"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr "назначение Ñовпадает Ñ Ð¸Ñточником!"
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: принÑтие диагноÑтики"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "ВоÑÑтановление Ñети"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
#, fuzzy
msgid "Inject network info"
msgstr "уÑтановка Ñетевого узла"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "Получить конÑольный вывод Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
#, fuzzy
msgid "Getting vnc console"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: получение конÑоли vnc"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: получение конÑоли vnc"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "ОтÑоединение тома от неизвеÑтной копии %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Попытка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÑущеÑтвующей конÑоли %(console_id)s."
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, fuzzy, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr "Ñетевые раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Сеть %(network_id)s не найдена."
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Узел %(host)s не найден."
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
#, fuzzy
msgid "_post_live_migration() is started.."
msgstr "Запущено post_live_migration().."
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4752,21 +4901,21 @@ msgstr ""
"отÑутÑтвует домен Ñ ÑоответÑтвующим именем.\" Эта ошибка может быть "
"безопаÑно пропущена."
-#: nova/compute/manager.py:3377
+#: nova/compute/manager.py:3416
#, fuzzy
msgid "Post operation of migration started"
msgstr "Запущено post_live_migration().."
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð´Ð»Ñ ip: %s"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
@@ -4775,64 +4924,64 @@ msgstr ""
"Ðайдены %(migration_count)d неподтверждённых перемещений, Ñтарше "
"%(confirm_window)d Ñекунд"
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, fuzzy, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr "Завершение работы Ð’Ðœ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_uuid)s"
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена"
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
#, fuzzy
msgid "In ERROR state"
msgstr "Ошибка БД: %s"
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr "Обновление временных данных иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»Ð¾ÑÑ‹ пропуÑканиÑ"
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Обновление временных данных иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»Ð¾ÑÑ‹ пропуÑканиÑ"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr "Обновление ÑоÑтоÑÐ½Ð¸Ñ ÑƒÐ·Ð»Ð°"
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4841,87 +4990,92 @@ msgstr ""
"Ðайдено %(num_db_instances)s в базе данных и %(num_vm_instances)s в "
"гипервизоре."
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ включена"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0, пропуÑк..."
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "LoggingVolumeDriver: %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, fuzzy, python-format
msgid "No service record for host %s"
msgstr "Ðет Ñлужбы Ð´Ð»Ñ compute ID %s"
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, 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:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "%s. УÑтановка ÑоÑтоÑÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ vm_state на ERROR"
+
#: nova/compute/resource_tracker.py:92
msgid ""
"Host field should not be set on the instance until resources have been "
@@ -5033,18 +5187,18 @@ msgstr "Ðевозможно найти узел Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5125,56 +5279,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5191,56 +5361,61 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5276,32 +5451,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 "Ð’ образе небезопаÑные имена файлов"
@@ -5320,16 +5500,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"
@@ -5443,17 +5627,17 @@ msgstr "Этот драйвер поддерживает только запиÑ
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr "ПредпринÑта удалить цепочку %s, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ ÑущеÑтвует"
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ°: %r"
-#: nova/network/linux_net.py:280
+#: nova/network/linux_net.py:279
#, python-format
msgid ""
"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
@@ -5462,86 +5646,86 @@ msgstr ""
"ПредпринÑта попытка удалить правило, которого там нет: %(chain)r %(rule)r"
" %(wrap)r %(top)r"
-#: nova/network/linux_net.py:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "ÐедопуÑтимое ÑоÑтоÑние: '%s'"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "ЗапуÑк интерфейÑа VLAN %s"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "ЗапуÑк копии %s"
-#: nova/network/linux_net.py:1459
+#: 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:1495
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Ошибка приоÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸"
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "ЗапуÑк копии %s"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Ошибка запуÑка xvp: %s"
@@ -5642,18 +5826,18 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr "cidr уже иÑпользуетÑÑ"
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
"Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ cidr (%(cidr)s) конфликтует Ñ ÑущеÑтвующей Ñупер-Ñетью "
"(%(super)s)"
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
@@ -5662,22 +5846,22 @@ msgstr ""
"Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ cidr (%(cidr)s) конфликтует Ñ ÑущеÑтвующей, меньшей cidr "
"(%(smaller)s)"
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr "Сеть уже ÑущеÑтвует!"
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr "Сеть должна быть иÑключена из проекта %s перед удалением"
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, fuzzy, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5715,80 +5899,80 @@ msgstr "_удалить: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 "уÑтановка Ñетевого узла"
@@ -5798,70 +5982,75 @@ msgstr "уÑтановка Ñетевого узла"
msgid "Quantum Error creating security group %s"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/network/security_group/quantum_driver.py:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5875,32 +6064,52 @@ 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"
msgstr "Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ ключа не могут быть удалены"
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5910,17 +6119,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"
@@ -5993,21 +6202,102 @@ msgstr "ПринÑÑ‚Ñ‹ неизвеÑтные аргументы ключевоÐ
msgid "Running cmd (subprocess): %s"
msgstr "Выполнение команды (ÑубпроцеÑÑ): %s"
+#: 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 "Результат %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr "%r ошибка. ВыполнÑетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€."
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Выполнение команды (SSH): %s"
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr "Среда не поддерживаетÑÑ Ñ Ð¸Ñпользованием SSH"
+
+#: nova/openstack/common/processutils.py:225
+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: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 попыток оÑталоÑÑŒ."
@@ -6138,12 +6428,12 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "Обнаружено неизвеÑтное иÑключение."
-#: nova/openstack/common/rpc/common.py:104
+#: nova/openstack/common/rpc/common.py:105
#, python-format
msgid ""
"Remote error: %(exc_type)s %(value)s\n"
@@ -6152,52 +6442,57 @@ msgstr ""
"Ð£Ð´Ð°Ð»Ñ‘Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %(exc_type)s %(value)s\n"
"%(traceback)s."
-#: nova/openstack/common/rpc/common.py:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6230,44 +6525,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 ""
@@ -6517,7 +6812,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6525,37 +6820,49 @@ msgid ""
msgstr ""
#: nova/scheduler/filter_scheduler.py:73
-#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+#, fuzzy, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr "Попытка Ñобрать %(num_instances)d копию(й)"
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, fuzzy, python-format
+msgid "Request Spec: %s"
+msgstr "ЗапроÑ: %s"
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "Отфильтрованы %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:357
-#, python-format
-msgid "Choosing host %(chosen_host)s"
-msgstr ""
+#: nova/scheduler/filter_scheduler.py:361
+#, fuzzy, python-format
+msgid "Weighed %(hosts)s"
+msgstr "Отфильтрованы %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:391
+#: 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)."
@@ -6627,10 +6934,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
@@ -6638,6 +6952,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"
@@ -6673,14 +6992,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 ""
@@ -6750,47 +7069,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 ""
@@ -6843,80 +7162,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr "Ð˜Ð¼Ð¸Ñ‚Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ (ÑубпроцеÑÑ): %s"
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr "Ð˜Ð¼Ð¸Ñ‚Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ привела к иÑключению %s"
-#: nova/tests/fake_utils.py:101
+#: nova/tests/fake_processutils.py:100
#, python-format
msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
msgstr "Ответ на имитацию команды в stdout='%(stdout)s' stderr='%(stderr)s'"
-#: nova/tests/fake_volume.py:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6929,63 +7210,73 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "ВыполнÑемые копии: %s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий: %s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr "ПоÑле принудительного Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий: %s"
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
#, fuzzy
msgid "spawn error"
msgstr "Ошибка аутентификации"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6995,22 +7286,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,35 +7366,74 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+#, fuzzy
+msgid "Unable to load the virtualization driver"
msgstr "Ðевозможно загрузить драйвер виртуализации: %s"
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7225,19 +7555,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr "Ответ на имитацию команды в stdout='%(stdout)s' stderr='%(stderr)s'"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7407,15 +7737,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7473,97 +7803,97 @@ msgstr "разделы не найдена"
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr "образ уже приÑоединён"
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "Ошибка Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð¹ ÑиÑтемы: %s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "Ошибка Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð¹ ÑиÑтемы: %s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7901,7 +8231,7 @@ msgstr "ВерÑÐ¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° копии: %s"
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7916,24 +8246,24 @@ msgstr "Получить конÑольный вывод Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
msgid "Host IP address is: %s"
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -8080,50 +8410,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 ""
@@ -8263,12 +8593,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Перечень копий"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: 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"
@@ -8434,7 +8764,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr "Создание Ñнимка копии Ð’Ðœ %s "
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8468,241 +8798,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Выполнение оÑтановки копий"
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: 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:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Сети не определены."
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Сети не определены."
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "Ñнимок %s: Ñоздание завершено"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Ошибка перезагрузки копии"
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "Пользователь не имеет админиÑтративных привилегий"
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "Создание изображениÑ"
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8710,12 +9040,12 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
@@ -8724,27 +9054,27 @@ msgstr ""
"Ошибка libvirt во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð¸Ñка %(instance_name)s: [Код ошибки "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: nova/virt/libvirt/driver.py:2594
#, fuzzy
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
@@ -8753,35 +9083,35 @@ msgstr ""
"Ðевозможно получить количеÑтво ЦПУ, так как Ñта возможноÑÑ‚ÑŒ не "
"реализована Ð´Ð»Ñ Ñтой платформы. Эту ошибку можно безопаÑно пропуÑтить."
-#: nova/virt/libvirt/driver.py:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr "уÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ð²ÐµÑ€ÑÐ¸Ñ libvirt (не поддерживаетÑÑ getVersion)"
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8789,21 +9119,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8812,29 +9142,29 @@ msgstr ""
"Создание временного файла %s Ð´Ð»Ñ Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… узлов Ñети compute о "
"необходимоÑти приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð³Ð¾ же хранилища."
-#: nova/virt/libvirt/driver.py:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8844,7 +9174,7 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8853,22 +9183,22 @@ msgstr ""
"Создание временного файла %s Ð´Ð»Ñ Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… узлов Ñети compute о "
"необходимоÑти приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð³Ð¾ же хранилища."
-#: nova/virt/libvirt/driver.py:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Ошибка аутентификации: %s"
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: nova/virt/libvirt/driver.py:3447
#, fuzzy, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
@@ -8877,39 +9207,39 @@ msgstr ""
"Ошибка libvirt во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð¸Ñка %(instance_name)s: [Код ошибки "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
#, fuzzy
msgid "Instance running successfully."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %s: выполнение"
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8944,153 +9274,153 @@ msgstr "nwfilter(%(instance_filter_name)s) длÑ%(name)s не найден."
msgid "iptables firewall: Setup Basic Filtering"
msgstr "БрандмауÑÑ€ iptables: ÐаÑтройка базовой фильтрации"
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, fuzzy, python-format
msgid "Unknown image_type=%s"
msgstr "неизвеÑтный обработчик образа диÑка: %s"
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, fuzzy, python-format
msgid "Reading image info file: %s"
msgstr "Выгрузка образа %s"
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "ЗапуÑк моÑта интерфейÑа Ð´Ð»Ñ %s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -9109,7 +9439,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. "
@@ -9117,17 +9447,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 ""
@@ -9204,12 +9534,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr "iSCSI-уÑтройÑтво не найдено в %s"
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, fuzzy, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9223,43 +9553,43 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr "Ðайден узел iSCSI %(mount_device)s (поÑле %(tries)s повторных проверок)"
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "iSCSI-уÑтройÑтво не найдено в %s"
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: 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:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "iSCSI-уÑтройÑтво не найдено в %s"
-#: nova/virt/libvirt/volume.py:712
+#: nova/virt/libvirt/volume.py:726
#, fuzzy, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
@@ -9268,30 +9598,30 @@ msgstr ""
"Том ISCSI не найден в: %(mount_device)s. Будет выполнена Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ "
"проверка и попытка. Повторение: %(tries)s"
-#: nova/virt/libvirt/volume.py:728
+#: 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 повторных проверок)"
-#: nova/virt/libvirt/volume.py:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9315,85 +9645,85 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Выполнение команды (ÑубпроцеÑÑ): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "Сбой ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ c melange"
@@ -9417,7 +9747,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 ""
@@ -9486,74 +9816,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ найдена"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "ЗапуÑк моÑта интерфейÑа Ð´Ð»Ñ %s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "Перечень копий"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: Создание образа"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "Выполнение запуÑка копий"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, fuzzy, python-format
msgid "Instance spawned in %s seconds"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ в приоÑтановленном ÑоÑтоÑнии"
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: выполнение Ñнимка"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "Включение Ð¿Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð½Ð° копии Ð’Ðœ %s"
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "Выполнение запуÑка копий"
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9572,27 +9902,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"
@@ -9659,18 +9989,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 ""
@@ -10028,54 +10358,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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"
@@ -10198,14 +10528,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, fuzzy, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
@@ -10214,12 +10544,12 @@ msgstr ""
"ÐЕ РЕÐЛИЗОВÐÐО: Вызов %(method)s не поддерживаетÑÑ Ð°Ð³ÐµÐ½Ñ‚Ð¾Ð¼. VM "
"id=%(instance_uuid)s; args=%(args)r"
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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. "
@@ -10228,83 +10558,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"
@@ -10324,26 +10658,26 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "Ошибка Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð»Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ключа: %s"
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr "ЗапуÑк узла на XenServer не поддерживаетÑÑ."
-#: nova/virt/xenapi/driver.py:630
+#: 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:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "ИÑключение: %s"
@@ -10483,73 +10817,73 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_Ñоздать: %s"
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "группа %s уже ÑущеÑтвует"
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Ðевозможно отÑоединить VBD %s"
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Ðевозможно ликвидировать VBD %s"
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr "Ðевозможно ликвидировать VDI %s"
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10558,107 +10892,100 @@ msgstr ""
"Создан VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) "
"на %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:479
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ найдена"
-#: nova/virt/xenapi/vm_utils.py:504
+#: 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:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "ЗапуÑк Ñнимка Ð´Ð»Ñ Ð’Ðœ %s"
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
@@ -10667,204 +10994,204 @@ msgstr ""
"Превышен размер Ñдра/Ramdisk образа: %(vdi_size)d байт, макÑ. "
"%(max_size)d байт"
-#: nova/virt/xenapi/vm_utils.py:1268
+#: 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:1282
+#: 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:1291
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "Ошибка перезагрузки копии"
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: 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:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s до Ñих пор доÑтупен"
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° SR %s"
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr "Ðевозможно найти SR типа Ñодержимого ISO"
-#: nova/virt/xenapi/vm_utils.py:1615
+#: 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:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO: не Ñодержимое iso типа"
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr "ISO: SR Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð¹ PBD"
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "ПодÑоединение VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "ПодÑоединение VBD %s выполнено."
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Ðайдено Ñдро Xen %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "Ядро Xen не найдено. Загрузка HVM."
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10872,16 +11199,16 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "Разделы:"
-#: nova/virt/xenapi/vm_utils.py:2038
+#: 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:2063
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
@@ -10890,41 +11217,48 @@ msgstr ""
"ЗапиÑÑŒ таблицы разделов %(primary_first)d %(primary_last)d в "
"%(dev_path)s..."
-#: nova/virt/xenapi/vm_utils.py:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "ЗапиÑÑŒ таблицы разделов %s выполнена."
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "Обновление Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ '%(instance_uuid)s' до %(progress)d"
@@ -10934,216 +11268,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "ЗапуÑк копии %s"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr "Удаление Ñдра/ramdisk файлов из dom0"
-#: nova/virt/xenapi/vmops.py:454
+#: 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:485
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° в базе данных"
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
#, fuzzy
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
"ÐвтоматичеÑÐºÐ°Ñ Ð½Ð°Ñтройка диÑка Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_uuid)s, выполнÑетÑÑ "
"попытка Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° раздела..."
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
#, fuzzy
msgid "Starting VM"
msgstr "Выполнение перезагрузки xvp"
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr "ВерÑÐ¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° копии: %s"
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, fuzzy, python-format
msgid "Could not find VM with name %s"
msgstr "Ðевозможно найти конфигурацию по адреÑу %(path)s"
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Готовый Ñнимок и выгрузка Ð´Ð»Ñ Ð’Ðœ %s"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr "Ошибка Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ vhd на новый узел"
-#: nova/virt/xenapi/vmops.py:813
-#, fuzzy, python-format
-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ГБ"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Ошибка перезагрузки копии"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, 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:948
+#: nova/virt/xenapi/vmops.py:1002
#, fuzzy
msgid "Resize complete"
msgstr "Изменение размера копии %s завершено"
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Unable to find root VBD/VDI for VM"
msgstr "Ошибка поиÑка vbd Ð´Ð»Ñ vdi %s"
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "Выполнение перезагрузки xvp"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
#, fuzzy
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
"ÐšÐ¾Ð¿Ð¸Ñ %(instance_uuid)s иÑпользует RAW или VHD, пропуÑк Ñдра и удаление "
"ramdisk"
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ Ñодержит Ñдро или ramdisk, но не оба"
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr "файлы Ñдра/ramdisk удалены"
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
#, fuzzy
msgid "Destroying VM"
msgstr "Выполнение перезагрузки xvp"
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr "Ð’Ðœ не предоÑтавлена, пропуÑк Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð»Ð¸ÐºÐ²Ð¸Ð´Ð°Ñ†Ð¸Ð¸..."
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð² ÑоÑтоÑнии режима воÑÑтановлениÑ: %s"
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "Ð’Ðœ не предоÑтавлена, пропуÑк Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð»Ð¸ÐºÐ²Ð¸Ð´Ð°Ñ†Ð¸Ð¸..."
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
#, fuzzy
msgid "Automatically hard rebooting"
msgstr "ÐвтоматичеÑÐºÐ°Ñ Ð±ÐµÐ·Ð¾Ñ‚ÐºÐ°Ð·Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° %d"
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "уÑтановка Ñетевого узла"
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
#, fuzzy
msgid "Creating vifs"
msgstr "Создание изображениÑ"
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Создание VIF Ð´Ð»Ñ Ð’Ðœ %(vm_ref)s, Ñеть %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
#, fuzzy
msgid "No suitable network for migrate"
msgstr "ÐедопуÑтимый Ñетевой формат"
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
#, fuzzy
msgid "Migrate Send failed"
msgstr "Ошибка ÑозданиÑ"
@@ -11226,7 +11570,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 "
@@ -11234,7 +11578,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 ""
@@ -11274,18 +11618,24 @@ msgstr "ÐÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s"
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr "ЗапуÑк узла Ñети nova-xvpvncproxy (верÑÐ¸Ñ %s)"
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
#, fuzzy
msgid "status must be 'in-use'"
msgstr "Образ должен быть доÑтупен"
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
#, fuzzy
msgid "status must be 'available'"
msgstr "Образ должен быть доÑтупен"
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
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..323fafbe5
--- /dev/null
+++ b/nova/locale/ru_RU/LC_MESSAGES/nova.po
@@ -0,0 +1,11264 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..8b4407e74
--- /dev/null
+++ b/nova/locale/sw_KE/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/tl/LC_MESSAGES/nova.po b/nova/locale/tl/LC_MESSAGES/nova.po
index 2d1a80fc1..6c72b9cdb 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -938,9 +938,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1008,510 +1008,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, 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:1095
#, 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:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1596,130 +1549,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,69 +1677,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1800,7 +1754,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1810,7 +1764,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1842,137 +1796,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2012,46 +1966,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2059,63 +2053,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2125,21 +2120,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 ""
@@ -2150,6 +2149,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 ""
@@ -2169,14 +2169,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2219,13 +2219,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2234,20 +2234,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2260,12 +2263,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2273,17 +2276,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2319,10 +2322,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 ""
@@ -2348,220 +2353,293 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2648,7 +2726,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2668,17 +2746,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2730,28 +2808,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 ""
@@ -2830,27 +2913,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2898,7 +2981,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2946,7 +3029,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2979,29 +3062,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3026,11 +3109,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 ""
@@ -3141,16 +3219,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 ""
@@ -3160,7 +3238,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3177,16 +3255,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3198,11 +3276,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 ""
@@ -3220,174 +3298,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: 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:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: 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:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3409,7 +3548,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3429,271 +3568,271 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "natanggap %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3773,242 +3912,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4042,714 +4197,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4859,18 +5014,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4948,54 +5103,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5012,56 +5183,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5097,32 +5272,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 ""
@@ -5141,15 +5321,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 ""
@@ -5263,103 +5447,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5454,38 +5638,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5520,79 +5704,78 @@ msgstr "natanggap %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5602,65 +5785,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5672,32 +5860,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5707,17 +5914,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 ""
@@ -5790,21 +5997,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5933,63 +6220,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6018,44 +6310,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 ""
@@ -6297,7 +6589,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6306,36 +6598,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6407,10 +6711,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
@@ -6418,6 +6729,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"
@@ -6453,14 +6769,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 ""
@@ -6530,46 +6846,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 ""
@@ -6622,79 +6938,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6707,61 +6986,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6771,22 +7060,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"
@@ -6848,35 +7137,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -6996,19 +7322,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7176,15 +7502,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7242,97 +7568,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7666,7 +7992,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7680,24 +8006,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7838,50 +8164,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 ""
@@ -8018,12 +8344,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8181,7 +8507,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8215,235 +8541,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8451,73 +8777,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8525,50 +8851,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8578,67 +8904,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8671,153 +8997,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8836,7 +9162,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. "
@@ -8844,17 +9170,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 ""
@@ -8930,12 +9256,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8947,70 +9273,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9034,83 +9360,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9133,7 +9459,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 ""
@@ -9201,74 +9527,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9284,27 +9610,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 ""
@@ -9370,18 +9696,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 ""
@@ -9714,54 +10040,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9882,107 +10208,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -9998,24 +10328,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10152,374 +10482,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10527,55 +10850,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10585,197 +10915,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10855,7 +11194,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 "
@@ -10863,7 +11202,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 ""
@@ -10903,16 +11242,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/tr/LC_MESSAGES/nova.po b/nova/locale/tr/LC_MESSAGES/nova.po
index f68449818..a103e044f 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -938,9 +938,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1008,510 +1008,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1596,130 +1549,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,69 +1677,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1800,7 +1754,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1810,7 +1764,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1842,137 +1796,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2012,46 +1966,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2059,63 +2053,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2125,21 +2120,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 ""
@@ -2150,6 +2149,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 ""
@@ -2169,14 +2169,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2219,13 +2219,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2234,20 +2234,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2260,12 +2263,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2273,17 +2276,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2319,10 +2322,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 ""
@@ -2348,220 +2353,293 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2648,7 +2726,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2668,17 +2746,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2730,28 +2808,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 ""
@@ -2830,27 +2913,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2898,7 +2981,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2946,7 +3029,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2979,29 +3062,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3026,11 +3109,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 ""
@@ -3141,16 +3219,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 ""
@@ -3160,7 +3238,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3177,16 +3255,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3198,11 +3276,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 ""
@@ -3220,174 +3298,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3409,7 +3548,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3429,270 +3568,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3772,242 +3911,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4041,714 +4196,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4858,18 +5013,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4947,54 +5102,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5011,56 +5182,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5096,32 +5271,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 ""
@@ -5140,15 +5320,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 ""
@@ -5262,103 +5446,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5453,38 +5637,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5519,79 +5703,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5601,65 +5784,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5671,32 +5859,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5706,17 +5913,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 ""
@@ -5789,21 +5996,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5932,63 +6219,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6017,44 +6309,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 ""
@@ -6296,7 +6588,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6305,36 +6597,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6406,10 +6710,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
@@ -6417,6 +6728,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"
@@ -6452,14 +6768,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 ""
@@ -6529,46 +6845,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 ""
@@ -6621,79 +6937,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6706,61 +6985,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6770,22 +7059,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"
@@ -6847,35 +7136,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -6995,19 +7321,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7175,15 +7501,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7241,97 +7567,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7665,7 +7991,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7679,24 +8005,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7837,50 +8163,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 ""
@@ -8017,12 +8343,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8180,7 +8506,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8214,235 +8540,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8450,73 +8776,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8524,50 +8850,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8577,67 +8903,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8670,153 +8996,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8835,7 +9161,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. "
@@ -8843,17 +9169,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 ""
@@ -8929,12 +9255,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8946,70 +9272,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9033,83 +9359,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9132,7 +9458,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 ""
@@ -9200,74 +9526,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9283,27 +9609,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 ""
@@ -9369,18 +9695,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 ""
@@ -9713,54 +10039,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9881,107 +10207,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -9997,24 +10327,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10151,374 +10481,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10526,55 +10849,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10584,197 +10914,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10854,7 +11193,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 "
@@ -10862,7 +11201,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 ""
@@ -10902,16 +11241,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/tr_TR/LC_MESSAGES/nova.po b/nova/locale/tr_TR/LC_MESSAGES/nova.po
index 0096cf357..191d5b281 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -85,7 +85,7 @@ msgstr "Bayrakların yolu: %s"
msgid "An unknown exception occurred."
msgstr "Bilinmeyen bir istisna oluÅŸtu."
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -169,8 +169,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Anahtar çifti verisi geçersiz"
@@ -186,8 +185,9 @@ msgstr "Geçersiz giriş yapıldı"
msgid "Invalid volume"
msgstr "Geçersiz bölüm"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr "Geçersiz metadata"
@@ -200,7 +200,7 @@ msgstr ""
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Geçersiz IP %(protocol)s."
@@ -966,9 +966,9 @@ msgstr "Önceki sistem geri görüntüsüne dönmek için izin verilmiyor."
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:898 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
@@ -1037,283 +1037,316 @@ 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
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:961
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:965
#, 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:969
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:973
#, 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:977
msgid "Quota exceeded"
msgstr "Kota aşıldı"
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr "Kişisel dosya limiti aşıldı"
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr "Kişisel dosya yolu çok uzun"
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr "Kişisel dosya içeriği çok uzun"
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, 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:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "%(aggregate_name)s kümesi zaten var."
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, 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:1038
#, 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:1043
#, 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:1047
msgid "Unable to create instance type"
msgstr "Örnek tür oluşturulamıyor."
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, 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:1070
#, 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:1075
#, 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:1079
#, 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:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, 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:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, 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:1197
+#: nova/exception.py:1198
#, 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:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "%(name)s örneği zaten var."
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Beklenen nesne türü: %s"
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1324,7 +1357,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 ..."
@@ -1345,205 +1378,125 @@ 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "Çalışan komut(SSH): %s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr "SSH üzerinde ortam desteklenmemektedir."
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr "SSH üzerinde process_input desteklenmemektedir."
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "Sonuç %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Yerel adres bağlantısı bulunamadı.:%s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, 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:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "Geçersiz backend: %s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "Bilinmeyen temel dosya: %s"
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr "Beklenen nesne türü: %s"
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr "Geçersiz server_string: %s"
-#: nova/utils.py:810
+#: nova/utils.py:734
#, 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:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "%s güvenlik grubu string veya unicode değil"
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1628,7 +1581,7 @@ msgstr "Hata yakalayıcı: %s"
msgid "Too many failed authentications."
msgstr "Çok sayıda kimlik doğrulama başarısız oldu."
-#: nova/api/ec2/__init__.py:184
+#: nova/api/ec2/__init__.py:183
#, python-format
msgid ""
"Access key %(access_key)s has had %(failures)d failed authentications and"
@@ -1637,124 +1590,119 @@ msgstr ""
"%(access_key)s erişim anahtarı %(failures)d kez yanlış girildi ve "
"%(lock_mins)d dakika boyunca kilitlenmiÅŸ olacak."
-#: nova/api/ec2/__init__.py:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr "Ä°mza verilmedi."
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr "Erişim anahtarı verilmedi."
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "Temel dosya kaldırılıyor: %s"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Çok sayıda kimlik doğrulama başarısız oldu."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "iÅŸlem: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr "arg: %(key)s»»val: %(value)s"
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr "%(controller)s kontrolcüsü ve %(action)s işlemi için izinsiz istek"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr "ÖrnekBulunamadı hatası: %s"
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr "BölümBulunamadı hatası: %s"
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr "SistemAnlıkGörüntüsüBulunamadı hatası: %s"
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "Bulunamadı hatası: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr "EC2API hatası: %s"
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr "AnahtarÇiftiZatenVar hatası: %s"
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, fuzzy, python-format
msgid "InvalidKeypair raised: %s"
msgstr "Geçersizİstek hatası: %s"
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr "GeçersizParametreDeğeri hatası: %s"
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr "GeçersizPortGenişliği hatası: %s"
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr "KimlikDoğrulama hatası: %s"
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr "Geçersizİstek hatası: %s"
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "BeklenmeyenHata: %s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr "Ortam: %s"
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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 "Bilinmeyen bir hata oluştu. Lütfen tekrar deneyin."
-#: nova/api/ec2/apirequest.py:62
+#: 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,69 +1712,75 @@ msgstr "Desteklenmeyen API isteği: kontrolcü = %(controller)s, işlem = %(acti
msgid "Create snapshot of volume %s"
msgstr "Bölüm %s'in sistem anlık görüntüsünü oluştur"
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "%s anahtar çiftini oluştur"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr "%s anahtarını içeriye aktar"
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "%s anahtar çiftini sil"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "Geçersiz IP %(protocol)s."
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
msgid "No rule for the specified parameters."
msgstr "Belirlenmiş parametreler için hiç kural yok"
-#: nova/api/ec2/cloud.py:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "%s örneği için konsol çıktısını getir"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr "%s sistem görüntüsünden birim oluştur"
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "%s GB'lık birim oluştur"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr "%(device)s'daki %(instance_id)s örneğine %(volume_id)s birimini bağla"
@@ -1835,7 +1789,7 @@ msgstr "%(device)s'daki %(instance_id)s örneğine %(volume_id)s birimini bağla
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Birimi ayır %s"
@@ -1845,7 +1799,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "Özellik desteklenmiyor: %s"
@@ -1877,137 +1831,137 @@ msgstr ""
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:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "Adresi kes %s"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr "İmaj müsait olmak zorunda"
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "Örnekleri sonlandırma işlemi başlatılıyor"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "%r örneğini tekrar yükle"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr "Örnekler durdurulacak"
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr "Örnekler başlatılacak"
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "%s imaj kaydı siliniyor"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "Kullanıcı veya grup belirlenmedi"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "Sadece \"all\" grubu destekleniyor"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "İşlem türü eklenmek veya kaldırılmak zorunda"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "%s imaj tanıtımı güncelleniyor"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "%d saniye içinde örnek durdurulamadı"
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2048,35 +2002,35 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: 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:182 nova/api/openstack/__init__.py:292
+#: 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 "
@@ -2085,11 +2039,51 @@ msgstr ""
"%(ext_name)s uzantısı: %(collection)s kaynağı genişletilemiyor: Böyle bir"
" kaynak yok"
-#: nova/api/openstack/__init__.py:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2097,63 +2091,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
msgid "limit param must be an integer"
msgstr "Sınır parametresi tam sayı olmak zorunda"
-#: nova/api/openstack/common.py:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr "Sınır parametresi pozitif olmak zorunda"
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr "Göreli konum parametresi tam sayı olmak zorunda"
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr "Göreli konum parametresi pozitif olmak zorunda"
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr " [%s] göstergesi bulunamadı"
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr "%s referansı versiyon içermiyor"
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr "İmaj üstveri sınırı aşıldı"
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: nova/api/openstack/common.py:362
#, python-format
msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
msgstr "Örnek %(attr)s %(state)s'de iken '%(action)s' yapılamaz"
-#: nova/api/openstack/common.py:364
-#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+#: nova/api/openstack/common.py:366
+#, fuzzy, python-format
+msgid "Instance is in an invalid state for '%s'"
msgstr "Örnek '%(action)s' için geçersiz durumda"
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr "Sistem görüntüsü isteği reddedildi, sistem görüntüleri şu anda devre dışı."
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr "Örnek sistem görüntüleri şu an onaylanmadı."
@@ -2163,21 +2158,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"
@@ -2188,6 +2187,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"
@@ -2207,14 +2207,14 @@ 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:346
+#: 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
-#, python-format
-msgid "Failed to load extension %(ext_name)s: %(exc)s"
+#: 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"
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2257,13 +2257,13 @@ 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:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr "Kusurlu istek gövdesi"
@@ -2272,20 +2272,23 @@ msgstr "Kusurlu istek gövdesi"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Desteklenmeyen içerik türü"
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2298,14 +2301,14 @@ msgstr "eleman çocuk değil"
msgid "root element selecting a list"
msgstr "listeden kök elemanı seçiliyor"
-#: nova/api/openstack/xmlutil.py:744
+#: nova/api/openstack/xmlutil.py:742
#, python-format
msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
msgstr ""
"Şablon ağacı uyumsuz; %(mastertag)s ana kaydına %(slavetag)s bağımlı "
"birimi ekleniyor"
-#: nova/api/openstack/xmlutil.py:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr "alt sınıflar yapıcı() oluşturmak zorunda!"
@@ -2313,17 +2316,17 @@ msgstr "alt sınıflar yapıcı() oluşturmak zorunda!"
msgid "Initializing extension manager."
msgstr "Genişletme yöneticisi başlatılıyor"
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2359,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 "Ö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"
@@ -2388,227 +2393,302 @@ msgstr "Sunucu mevcut deÄŸil"
msgid "Metadata item was not found"
msgstr "İçerik özelliği bilgisi bulunamadı"
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr "Geçersiz değişiklik-oluşturma değeri"
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "%(flavor_id)s örnek türü bulunamadı."
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr "Örnek bulunamadı."
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr "Yanlış kişisel biçim: %s bulunamadı"
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr "Yanlış kişisel biçim"
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, 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:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, 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:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "Geçersiz değişken IP adresi (%s)"
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Tekrarlanan aÄŸlara (%s) izin verilmiyor"
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr "Yanlış ağ biçimi: %s bulunamadı"
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr "Hatalı ağ biçimi"
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr "Kullanıcı verisi içeriği çözülemez"
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr "IPv4 adresi uygun IPv4 formatında değil"
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr "Sunucu adı tanımlanmadı"
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr "Geçersiz örnek türü sağlayıcısı"
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr "İstenilen imaj dosyası bulunamadı"
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr "Geçersiz anahtar adı verildi."
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "%s için kişisel içerik çözümlenemedi"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr "Örnek tekrar boyutlandırılacak şekilde ayarlanmadı."
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "%(instance_id)s örneği bulunamadı."
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
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:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr "Önyükleme için tür argümanı eksik"
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr "İstenilen örnek türü konumlandırılamıyor."
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, 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:1216
msgid "Missing imageRef attribute"
msgstr "İmaj referans özelliği eksik"
-#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr "Geçersiz imaj referansı verildi."
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr "Örnek türü referans özelliği eksik"
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr "Belirlenmiş bir yönetici parolası yok"
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr "Geçersiz yönetici parolası"
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Örnek kapatmada hata oluştu."
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr "Çözümlenemeyen metadata anahtar/değer çifti."
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
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:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
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:1220
+#: 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:1324
msgid "Invalid request body"
msgstr "Geçersiz istek gövdesi"
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr "İstekte bulunulan imaj referansı çözümlenemedi."
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr "Yeniden kurulum için imaj dosyası bulunamadı."
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr "createImage varlığının isim özelliğine ihtiyacı var"
-#: nova/api/openstack/compute/servers.py:1409
-#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, fuzzy, python-format
+msgid "Removing options '%s' from query"
msgstr "Sorgudan '%(unk_opt_str)s' seçenekleri kaldırılıyor"
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2696,7 +2776,7 @@ msgstr "Sunucu ve blok_göçü tanımlanmak zorunda."
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, fuzzy, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr "%(id)s'dan %(host)s sunucusuna örnek göçü hatalı"
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2716,17 +2796,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2781,29 +2861,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 ""
@@ -2887,28 +2972,28 @@ msgstr "Kümeler %s işlemine sahip değil"
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr "%s 'MANUAL' veya 'AUTO' olmak zorunda"
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
#, fuzzy
msgid "host and onSharedStorage must be specified."
msgstr "Sunucu ve blok_göçü tanımlanmak zorunda."
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, fuzzy, python-format
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ı"
@@ -2957,7 +3042,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:437
msgid "Missing parameter dict"
msgstr "Parametre dizini eksik"
@@ -3006,7 +3091,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "%(address)s deÄŸiÅŸken IP adresi iliÅŸkilendirilemedi."
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3040,29 +3125,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "Sunucu durumu güncelleniyor"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3087,11 +3172,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ı"
@@ -3205,16 +3285,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"
@@ -3224,7 +3304,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "Geçerli bir kuralı oluşturmak için yeterli parametre yok."
@@ -3243,16 +3323,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:356
#, 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:440
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:444
msgid "Security group name cannot be empty"
msgstr "Güvenlik grup adı boş bırakılamaz"
@@ -3264,12 +3344,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ı"
@@ -3288,174 +3368,236 @@ msgstr "birim=%s"
msgid "Delete volume with id: %s"
msgstr "%s id'li birim siliniyor"
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: nova/api/openstack/compute/contrib/volumes.py:380
#, fuzzy, python-format
msgid "Bad volumeId format: volumeId is not in proper format (%s)"
msgstr "Yanlış ağ biçimi: ağ UUID'si uygun formatta değil(%s)"
-#: nova/api/openstack/compute/contrib/volumes.py:396
+#: 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 "%(device)s'daki %(server_id)s örneğine %(volume_id)s birimi ekleniyor"
-#: nova/api/openstack/compute/contrib/volumes.py:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr "%s id'li sistem görüntüsü siliniyor"
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr "%s biriminden sistem görüntüsü oluşturuluyor"
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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 ""
-#: nova/cells/messaging.py:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: 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:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3477,7 +3619,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3497,277 +3639,277 @@ msgstr "eleman çocuk değil"
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "Veritabanı hatası: %s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "Başlangıç adresi"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
#, fuzzy
msgid "No fixed IP found."
msgstr "Hiç dinamik IP bulunamadı."
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, fuzzy, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr "Örnekle değişken IP ilişkilendirilmedi"
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr "id"
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr "IPv4"
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr "IPv6"
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr "Başlangıç adresi"
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr "DNS1"
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr "DNS2"
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr "VlanID"
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr "proje"
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr "uuid"
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "Ağ bulunamadı"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
#, fuzzy
msgid "UUID is required to delete Quantum Networks"
msgstr "AÄŸ oluÅŸturulurken %(req)s gereklidir."
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "%r örneğini tekrar yükle"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "%(service_id)s servisi bulunamadı."
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "%(service_id)s servisi bulunamadı."
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "BeklenmeyenHata: %s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
#, fuzzy
msgid "PROJECT"
msgstr "proje"
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3851,115 +3993,125 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "Örnekleri sonlandırma işlemi başlatılıyor"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, 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:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Örnekleri sonlandırma işlemi başlatılıyor"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -3968,129 +4120,135 @@ msgstr ""
"Eski örnek türü %(current_instance_type_name)s, yeni örnek türü "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, 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:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr "%s güvenlik grubu boş bırakılamaz."
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, 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:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "%s güvenlik grubunu oluşturunuz"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr "%s güvenlik grubu zaten var"
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Geçersiz güncelleme ayarı: '%s'"
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "%s güvenlik grubunu siliniz"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr "Kural (%s) bulunamadı"
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Yetkilendirilmiş %s güvenlik grubu girişi"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "%s güvenlik grubu girişini iptal et"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr "Güvenlik grup id'si integer olmak zorunda"
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4124,643 +4282,634 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
#, fuzzy, python-format
-msgid "'%s' argument must be a positive integer"
-msgstr "Göreli konum parametresi tam sayı olmak zorunda"
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr "yedekOluşturma 'dönüşme' özelliği tamsayı olmak zorunda"
-#: nova/compute/flavors.py:113
+#: nova/compute/flavors.py:117
msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
-msgstr ""
-
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr "Veritabanı hatası: %s"
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr "Silme işlemi için %s örnek türü bulunamadı"
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: 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:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Örnek kapatmada hata oluştu."
-#: nova/compute/manager.py:578
+#: 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:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "BeklenmeyenHata: %s"
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "Durum kontrol ediliyor"
-#: nova/compute/manager.py:746
+#: 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:763
+#: 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:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "Örnek oluşturmada hata"
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Veritabanı hatası: %s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "Örnek başlatılıyor.."
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "Örnek ağ_bilgisi: |%s|"
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "Örnek blok aygıtı kurulumu hatalı"
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "Örnek oluşturmada hata"
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "Örnek için ağ serbest bırakılıyor"
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s örneği"
-
-#: nova/compute/manager.py:1342
+#: 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:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "Blok cihazı haritalandırması kapatılıyor %s"
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Birimi ayır %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, 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:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr "Ä°maj siliniyor %s"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, 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:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Örnek kapatmada hata oluştu."
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Veritabanı hatası: %s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "Örneğin hiç bölümü yok."
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr "dedef kaynak ile aynı!"
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "Konsol ekleniyor"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, 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:2967
+#: nova/compute/manager.py:2999
#, 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:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, 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:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, 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:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "%(host)s sunucusu bulunamadı."
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, 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:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, 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:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr "Bant genişliği kullanım önbelleği güncelleniyor"
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Bant genişliği kullanım önbelleği güncelleniyor"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr "Sunucu durumu güncelleniyor"
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4769,83 +4918,88 @@ msgstr ""
"Veritabanında %(num_db_instances)s ve misafir sistemde "
"%(num_vm_instances)s bulundu"
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr "Silinen örnek kurtarılıyor"
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Ä°maj siliniyor %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4956,18 +5110,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:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5046,56 +5200,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5112,56 +5282,61 @@ msgstr "Sürüm tam sayı olmak zorunda"
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5197,32 +5372,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"
@@ -5241,16 +5421,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 ""
@@ -5364,103 +5548,103 @@ msgstr "Bu türücü sadece 'a' türü girdileri destekliyor."
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr "Var olmayan %s zinciri kaldırılmaya çalışılıyor"
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr "Tanınmayan zincir: %r"
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: 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:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: 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:1447
+#: 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:1459
+#: 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:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5555,38 +5739,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5622,80 +5806,80 @@ msgstr "sil: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5705,70 +5889,75 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr "%s güvenlik grubunu siliniz"
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: 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:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5782,32 +5971,52 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5817,17 +6026,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 ""
@@ -5900,21 +6109,101 @@ msgstr "utils.execute için bilinmeyen anahtar kelime argümanları: %r"
msgid "Running cmd (subprocess): %s"
msgstr "Çalışan komut(alt süreç): %s"
+#: 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 "Sonuç %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr "%r hatalı. Yeniden deneniyor."
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Çalışan komut(SSH): %s"
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr "SSH üzerinde ortam desteklenmemektedir."
+
+#: nova/openstack/common/processutils.py:225
+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: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 ""
@@ -6043,63 +6332,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "Geçersi RPC bağlantısı kullanımı."
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6128,44 +6422,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 ""
@@ -6408,7 +6702,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6416,37 +6710,49 @@ msgid ""
msgstr ""
#: nova/scheduler/filter_scheduler.py:73
-#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+#, fuzzy, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr "%(num_instances)d örnek(leri) kurulmaya çalışılıyor."
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, fuzzy, python-format
+msgid "Request Spec: %s"
+msgstr "Geçersizİstek hatası: %s"
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "%(hosts)s filtrelendi"
-#: nova/scheduler/filter_scheduler.py:357
-#, python-format
-msgid "Choosing host %(chosen_host)s"
-msgstr ""
+#: nova/scheduler/filter_scheduler.py:361
+#, fuzzy, python-format
+msgid "Weighed %(hosts)s"
+msgstr "%(hosts)s filtrelendi"
-#: nova/scheduler/filter_scheduler.py:391
+#: 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."
@@ -6518,10 +6824,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
@@ -6529,6 +6842,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"
@@ -6564,14 +6882,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 ""
@@ -6641,47 +6959,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 ""
@@ -6734,82 +7052,44 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr "Komutun(alt sürecin) taklit çalıştırılması: %s"
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr "Sahte komut eÅŸleÅŸti %s"
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr "Sahte komut bir istisna fırlattı %s"
-#: nova/tests/fake_utils.py:101
+#: nova/tests/fake_processutils.py:100
#, python-format
msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
msgstr ""
"Sahte komuta verilen yanıt: standartçıktı='%(stdout)s' "
"standarthata='%(stderr)s'"
-#: nova/tests/fake_volume.py:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6822,62 +7102,72 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "Örnekler çalışıyor: %s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "Örnekleri sonlandırmanın ardından: %s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr "İçsel hata"
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr "Zorla öldürülen örneklerin ardından: %s"
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
#, fuzzy
msgid "spawn error"
msgstr "Kimlik doğrulama hatası"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6887,22 +7177,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"
@@ -6967,35 +7257,74 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: 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"
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7118,19 +7447,19 @@ msgstr ""
"Sahte komuta verilen yanıt: standartçıktı='%(stdout)s' "
"standarthata='%(stderr)s'"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7299,15 +7628,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7366,97 +7695,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7790,7 +8119,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7804,24 +8133,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr "%s adresini serbest bırak"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7962,50 +8291,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 ""
@@ -8144,12 +8473,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:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8308,7 +8637,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8342,238 +8671,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Örnekler durdurulacak"
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Tanımlı bir ağ yok."
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Tanımlı bir ağ yok."
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8581,73 +8910,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8655,21 +8984,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8678,29 +9007,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:3002
+#: 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:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8715,7 +9044,7 @@ msgstr ""
" \n"
" Bkz: %(u)s"
-#: nova/virt/libvirt/driver.py:3101
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8724,62 +9053,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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: 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:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8812,46 +9141,46 @@ 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:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr "%s geçerli bir örnek ismidir"
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr "%s bir disk dosyasına sahiptir"
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr "%(instance)s örneği %(backing)s tarafından desteklenmiştir"
-#: nova/virt/libvirt/imagecache.py:350
+#: nova/virt/libvirt/imagecache.py:347
#, python-format
msgid ""
"Instance %(instance)s is using a backing file %(backing)s which does not "
@@ -8860,107 +9189,107 @@ msgstr ""
"%(instance)s örneği imaj servisinde görünmeyen bir %(backing)s destek "
"dosyasını kullanıyor"
-#: nova/virt/libvirt/imagecache.py:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr "Temel dosya kaldırmak için çok yeni: %s"
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr "Temel dosya kaldırılıyor: %s"
-#: nova/virt/libvirt/imagecache.py:482
+#: nova/virt/libvirt/imagecache.py:478
#, python-format
msgid "Failed to remove %(base_file)s, error was %(error)s"
msgstr "%(base_file)s dosyasını kaldırma başarısız, %(error)s"
-#: nova/virt/libvirt/imagecache.py:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr "Doğrulama atlanıyor, %s'de temel dizin yok"
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr "Temel imajları doğrulayın"
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr "Bilinmeyen temel dosya: %s"
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr "Aktif temel dosyalar: %s"
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr "Bozuk temel dosyalar: %s"
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr "Taşınabilir temel dosyalar: %s"
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr "Doğrulama tamamlandı"
@@ -8979,7 +9308,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. "
@@ -8987,17 +9316,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 ""
@@ -9073,12 +9402,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr "%s'de iSCSI cihazı bulunamadı"
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9090,71 +9419,71 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: 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:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "%s'de iSCSI cihazı bulunamadı"
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9178,83 +9507,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "Çalışan komut(alt süreç): %s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9277,7 +9606,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 ""
@@ -9345,74 +9674,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9428,27 +9757,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 ""
@@ -9514,18 +9843,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 ""
@@ -9858,54 +10187,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -10028,107 +10357,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10144,24 +10477,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10298,374 +10631,369 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10673,55 +11001,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10731,199 +11066,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "Örnek tür oluşturulamıyor."
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "XVP tekar başlatılıyor"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Hatalı ağ biçimi"
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -11004,7 +11349,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 "
@@ -11012,7 +11357,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 ""
@@ -11052,18 +11397,21 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
#, fuzzy
msgid "status must be 'in-use'"
msgstr "İmaj müsait olmak zorunda"
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
#, fuzzy
msgid "status must be 'available'"
msgstr "İmaj müsait olmak zorunda"
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr "'%s' anahtar çifti zaten var."
+
diff --git a/nova/locale/uk/LC_MESSAGES/nova.po b/nova/locale/uk/LC_MESSAGES/nova.po
index dcaa62149..16bb99e5e 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -84,7 +84,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -168,8 +168,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -185,8 +184,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -939,9 +939,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1009,510 +1009,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1597,131 +1550,126 @@ msgstr ""
msgid "Too many failed authentications."
msgstr "Занадто багато невдалих аутентифікацій."
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "Занадто багато невдалих аутентифікацій."
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1731,69 +1679,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "Це правило вже Ñ–Ñнує в групі %s"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "Створити розділ на %s ГБ"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1802,7 +1756,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "Від'єднати том %s"
@@ -1813,7 +1767,7 @@ msgid "Detach Volume Failed."
msgstr "Від'єднати том %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1845,137 +1799,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "лише група \"вÑÑ–\" підтримуєтьÑÑ"
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2015,46 +1969,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2062,63 +2056,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2128,21 +2123,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 +2152,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,14 +2172,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2222,13 +2222,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2237,20 +2237,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð³Ð¸ %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2263,12 +2266,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2276,17 +2279,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2322,10 +2325,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 ""
@@ -2351,220 +2356,293 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2651,7 +2729,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2671,17 +2749,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2733,28 +2811,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 ""
@@ -2833,27 +2916,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2901,7 +2984,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2949,7 +3032,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2982,29 +3065,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð³Ð¸ %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð³Ð¸ %s"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3029,11 +3112,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 ""
@@ -3144,16 +3222,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 ""
@@ -3163,7 +3241,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3181,16 +3259,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3202,11 +3280,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 ""
@@ -3224,174 +3302,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3413,7 +3552,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3433,271 +3572,271 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "отримано %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3777,242 +3916,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "Вилучити групу безпеки %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4046,715 +4201,715 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Від'єднати том %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Від'єднати том %s"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Від'єднати том %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4864,18 +5019,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4953,54 +5108,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5017,56 +5188,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5102,32 +5277,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 ""
@@ -5146,15 +5326,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 ""
@@ -5268,103 +5452,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5459,38 +5643,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5525,79 +5709,78 @@ msgstr "отримано %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5607,66 +5790,71 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr "Вилучити групу безпеки %s"
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Вилучити групу безпеки %s"
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5678,32 +5866,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5713,17 +5920,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 ""
@@ -5796,21 +6003,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5939,63 +6226,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6024,44 +6316,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 ""
@@ -6303,7 +6595,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6312,36 +6604,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6413,10 +6717,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
@@ -6424,6 +6735,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"
@@ -6459,14 +6775,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 ""
@@ -6536,46 +6852,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 ""
@@ -6628,79 +6944,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6713,61 +6992,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6777,22 +7066,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"
@@ -6854,35 +7143,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7002,19 +7328,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7182,15 +7508,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7248,97 +7574,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7672,7 +7998,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7686,24 +8012,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7844,50 +8170,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 ""
@@ -8024,12 +8350,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8187,7 +8513,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8221,235 +8547,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8457,73 +8783,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8531,50 +8857,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8584,67 +8910,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8677,153 +9003,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8842,7 +9168,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. "
@@ -8850,17 +9176,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 ""
@@ -8936,12 +9262,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8953,70 +9279,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9040,83 +9366,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9139,7 +9465,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 ""
@@ -9207,74 +9533,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9290,27 +9616,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 ""
@@ -9376,18 +9702,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 ""
@@ -9720,54 +10046,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9888,107 +10214,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10004,24 +10334,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10158,374 +10488,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10533,55 +10856,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10591,197 +10921,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10862,7 +11201,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 "
@@ -10870,7 +11209,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 ""
@@ -10910,16 +11249,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/vi_VN/LC_MESSAGES/nova.po b/nova/locale/vi_VN/LC_MESSAGES/nova.po
index d45a6e21f..d488325c1 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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) "
@@ -84,7 +84,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr ""
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -168,8 +168,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
@@ -185,8 +184,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -939,9 +939,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1009,510 +1009,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1597,130 +1550,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,69 +1678,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1801,7 +1755,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1811,7 +1765,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1843,137 +1797,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2013,46 +1967,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: 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: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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2060,63 +2054,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2126,21 +2121,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 +2150,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,14 +2170,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2220,13 +2220,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2235,20 +2235,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2261,12 +2264,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2274,17 +2277,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2320,10 +2323,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 ""
@@ -2349,220 +2354,293 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
msgstr ""
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2649,7 +2727,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2669,17 +2747,17 @@ msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2731,28 +2809,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 ""
@@ -2831,27 +2914,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2899,7 +2982,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2947,7 +3030,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2980,29 +3063,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3027,11 +3110,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 ""
@@ -3142,16 +3220,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 ""
@@ -3161,7 +3239,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3178,16 +3256,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3199,11 +3277,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 ""
@@ -3221,174 +3299,235 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3410,7 +3549,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, python-format
msgid "Failed to load %s"
msgstr ""
@@ -3430,270 +3569,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3773,242 +3912,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4042,714 +4197,714 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4859,18 +5014,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4948,54 +5103,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5012,56 +5183,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5097,32 +5272,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 ""
@@ -5141,15 +5321,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 ""
@@ -5263,103 +5447,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5454,38 +5638,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5520,79 +5704,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5602,65 +5785,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5672,32 +5860,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5707,17 +5914,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 ""
@@ -5790,21 +5997,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5933,63 +6220,68 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
msgid "An unknown RPC related exception occurred."
msgstr ""
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6018,44 +6310,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 ""
@@ -6297,7 +6589,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6306,36 +6598,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6407,10 +6711,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
@@ -6418,6 +6729,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"
@@ -6453,14 +6769,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 ""
@@ -6530,46 +6846,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 ""
@@ -6622,79 +6938,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6707,61 +6986,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6771,22 +7060,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"
@@ -6848,35 +7137,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -6996,19 +7322,19 @@ msgstr ""
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7176,15 +7502,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7242,97 +7568,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7666,7 +7992,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7680,24 +8006,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7838,50 +8164,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 ""
@@ -8018,12 +8344,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8181,7 +8507,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8215,235 +8541,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8451,73 +8777,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8525,50 +8851,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8578,67 +8904,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8671,153 +8997,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8836,7 +9162,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. "
@@ -8844,17 +9170,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 ""
@@ -8930,12 +9256,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8947,70 +9273,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9034,83 +9360,83 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
msgid "File transfer from PowerVM manager failed"
msgstr ""
@@ -9133,7 +9459,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 ""
@@ -9201,74 +9527,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, python-format
msgid "PowerVM image creation failed: %s"
msgstr ""
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, python-format
msgid "LPAR instance '%s' creation failed"
msgstr ""
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9284,27 +9610,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 ""
@@ -9370,18 +9696,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 ""
@@ -9714,54 +10040,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9882,107 +10208,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -9998,24 +10328,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10152,374 +10482,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1205
+#: 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10527,55 +10850,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10585,197 +10915,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10855,7 +11194,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 "
@@ -10863,7 +11202,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 ""
@@ -10903,16 +11242,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/zh_CN/LC_MESSAGES/nova.po b/nova/locale/zh_CN/LC_MESSAGES/nova.po
index 3e0a9b0e5..88585a8c0 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -85,7 +85,7 @@ msgstr "标记所在路径:%s"
msgid "An unknown exception occurred."
msgstr "å‘生未知异常。"
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -170,8 +170,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "密钥对数æ®æ— æ•ˆ"
@@ -187,8 +186,9 @@ msgstr "收到无效的输入"
msgid "Invalid volume"
msgstr "无效的å·"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr "无效的元数æ®"
@@ -202,7 +202,7 @@ msgstr "无效的元数æ®é”®"
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/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "无效的IPåè®® %(protocol)s。"
@@ -949,9 +949,9 @@ msgstr "å¿«ç…§ä¸å…许循环。"
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:898 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
@@ -1021,286 +1021,319 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr "é•œåƒæ¯”实例类型所å…许的大。"
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr "实例类型的内存对于所请求的镜åƒå¤ªå°ã€‚"
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr "实例类型的ç£ç›˜å¯¹äºŽæ‰€è¯·æ±‚çš„é•œåƒå¤ªå°ã€‚"
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr "没有足够的å¯ç”¨å†…å­˜æ¥å¯åŠ¨è®¡ç®—节点 %(uuid)s。"
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr "无法获å–此主机的带宽ã€CPUå’Œç£ç›˜æŒ‡æ ‡ã€‚"
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr "找ä¸åˆ°æœ‰æ•ˆä¸»æœºï¼ŒåŽŸå› æ˜¯ %(reason)s。"
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr "超出é…é¢"
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:997
+#: nova/exception.py:993
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, fuzzy, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr "超过个性化文件é™åˆ¶"
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr "个性化文件路径太长"
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr "个性化文件内容太长"
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
#, fuzzy
msgid "Maximum number of key pairs exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1021
+#: nova/exception.py:1017
#, fuzzy
msgid "Maximum number of security groups or rules exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, 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:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr "找ä¸åˆ°èšåˆ %(aggregate_id)s。"
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "èšåˆ %(aggregate_name)s å·²ç»å­˜åœ¨ã€‚"
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, 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:1038
#, 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:1043
#, 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:1047
msgid "Unable to create instance type"
msgstr "无法创建实例类型。"
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, fuzzy, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr "设置管ç†å‘˜å¯†ç å¤±è´¥ã€‚实例 %s 没有è¿è¡Œ"
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, fuzzy, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr "检测到已存在的id为%(vlan) vlan"
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "实例 %(instance_id)s 没有找到。"
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, 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:1075
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "å· %(volume_id)s 没有找到。"
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, 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:1083
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "é•œåƒ %(image_id)s 没有找到。"
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "获å–é•œåƒ %(image)s"
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "获å–é•œåƒ %(image)s"
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, 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:1107
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "没有找到实例 %(instance_id)s"
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "释放实例的网络"
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "释放实例的网络"
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, 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:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, fuzzy, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "没有为项目 %(project_id)s 找到é…é¢ã€‚"
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, fuzzy, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "项目 %(project_id)s 没有找到。"
-#: nova/exception.py:1165
+#: nova/exception.py:1166
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "该驱动ä¸èƒ½æ‰§è¡Œset_admin_password。"
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "实例 %(instance_id)s ä¸åœ¨æ•‘æ´æ¨¡å¼ã€‚"
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "实例 %(instance_id)s ä¸åœ¨æ•‘æ´æ¨¡å¼ã€‚"
+#: nova/exception.py:1203
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "实例类型 %(name)s å·²ç»å­˜åœ¨ã€‚"
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "期望的对象类型:%s"
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1311,7 +1344,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 "å‘调度器通报能力。"
@@ -1332,206 +1365,125 @@ 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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr "è¿è¡Œcmd (SSH):%s"
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr "SSH上ä¸æ”¯æŒçŽ¯å¢ƒå˜é‡"
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr "SSH上ä¸æ”¯æŒçš„进程输入å‚数。"
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr "è¿è¡Œç»“果为 %s"
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr "回调中debug:%s"
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "本地IP地å€æ²¡æœ‰æ‰¾åˆ°ï¼š%s"
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "无法连接到 %(interface)s 的本地IP:%(ex)s"
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr "无效的åŽå°ï¼š%s"
-#: nova/utils.py:496
+#: nova/utils.py:439
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "未知的基文件:%s"
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr "期望的对象类型:%s"
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr "ä¸æ­£ç¡®çš„server_string:%s"
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc:'%(name)s' 用了%(total_time).2f 秒"
-#: nova/utils.py:876
+#: nova/utils.py:800
#, fuzzy, python-format
msgid "Reloading cached file %s"
msgstr "正在删除基文件:%s"
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, fuzzy, python-format
msgid "Could not remove tmpdir: %s"
msgstr "移除容器失败:%s"
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "æœåŠ¡å™¨å称ä¸æ˜¯å­—符串或者unicode"
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, fuzzy, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr "密钥对å称长度必须在1到255个字符之间"
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1616,131 +1568,126 @@ msgstr "FaultWrapper: %s"
msgid "Too many failed authentications."
msgstr "认è¯å¤±è´¥è¿‡å¤š"
-#: nova/api/ec2/__init__.py:184
+#: 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 "访问密钥 %(access_key)s 有错误 %(failures)d,认è¯å¤±è´¥å°†è¢«é”定 %(lock_mins)d 分钟。"
-#: nova/api/ec2/__init__.py:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr "ç­¾å没有æä¾›"
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr "访问密钥没有æä¾›"
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr "与keystone交æµå¤±è´¥"
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, fuzzy, python-format
msgid "Keystone failure: %s"
msgstr "预在线è¿ç§»åœ¨%(dest)s失败"
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
#, fuzzy
msgid "Timestamp failed validation."
msgstr "认è¯å¤±è´¥è¿‡å¤š"
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr "执行: %s"
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr "arg: %(key)s\t\tval: %(value)s"
-#: nova/api/ec2/__init__.py:411
+#: nova/api/ec2/__init__.py:413
#, python-format
msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
msgstr "为controller=%(controller)s ä»¥åŠ action=%(action)s未验è¯çš„请求"
-#: nova/api/ec2/__init__.py:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr "引起异常 InstanceNotFound: %s"
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr "引起异常 VolumeNotFound: %s"
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr "引起异常 SnapshotNotFound: %s"
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr "引起异常 NotFound: %s"
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr "引起异常 EC2APIError: %s"
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr "引起异常 KeyPairExists: %s"
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, fuzzy, python-format
msgid "InvalidKeypair raised: %s"
msgstr "引起异常 InvalidRequest: %s"
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr "引起异常 InvalidParameterValue: %s"
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr "引起异常 InvalidPortRange: %s"
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr "引起异常 NotAuthorized: %s"
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr "引起异常 InvalidRequest: %s"
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, fuzzy, python-format
msgid "QuotaError raised: %s"
msgstr "引起æ„外的错误:%s"
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr "引起æ„外的错误:%s"
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr "Environment: %s"
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: 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,70 +1697,76 @@ msgstr "ä¸æ”¯æŒçš„API请求:controller = %(controller)s,action = %(action)
msgid "Create snapshot of volume %s"
msgstr "åˆ›å»ºå· %s çš„å¿«ç…§"
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, fuzzy, python-format
msgid "Could not find key pair(s): %s"
msgstr "解密ç§é’¥å¤±è´¥ï¼š%s"
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr "创建密钥对 %s"
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr "导入密钥 %s"
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr "删除密钥对 %s"
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, fuzzy, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr "å‚æ•°ä¸å¤Ÿåˆ›å»ºæœ‰æ•ˆè§„则。"
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: nova/api/ec2/cloud.py:623
+#, fuzzy, python-format
+msgid "Invalid IP protocol %s."
+msgstr "无效的IPåè®® %(protocol)s。"
+
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, fuzzy, python-format
msgid "%s - This rule already exists in group"
msgstr "è¿™æ¡è§„则已ç»å­˜åœ¨äºŽç»„%s 中"
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr "获å–实例 %s 控制å°è¾“出"
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr "从快照 %s 创建å·"
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
#, python-format
msgid "Create volume of %s GB"
msgstr "创建 %s GBçš„å·"
-#: nova/api/ec2/cloud.py:866
+#: nova/api/ec2/cloud.py:863
#, fuzzy
msgid "Delete Failed"
msgstr "创建失败"
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr "æŠŠå· %(volume_id)s 附加到实例 %(instance_id)s 上ä½ç½®åœ¨ %(device)s"
@@ -1823,7 +1776,7 @@ msgstr "æŠŠå· %(volume_id)s 附加到实例 %(instance_id)s 上ä½ç½®åœ¨ %(devi
msgid "Attach Failed."
msgstr "创建失败"
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr "åˆ†ç¦»å· %s"
@@ -1834,7 +1787,7 @@ msgid "Detach Volume Failed."
msgstr "åˆ†ç¦»å· %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr "属性ä¸æ”¯æŒ: %s"
@@ -1868,145 +1821,145 @@ msgstr "æ— æ³•æ‰¾åˆ°åœ°å€ %r"
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "æŠŠåœ°å€ %(public_ip)s å…³è”到实例 %(instance_id)s"
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "æ— æ³•æ‰¾åˆ°åœ°å€ %r"
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
#, fuzzy
msgid "Floating ip is already associated."
msgstr "浮动ip %(address)s 已被关è”。"
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
#, fuzzy
msgid "l3driver call to add floating ip failed."
msgstr "没有浮动IPå¯ç”¨ã€‚"
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "æ— æ³•æ‰¾åˆ°åœ°å€ %r"
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr "å–æ¶ˆåœ°å€ %s çš„å…³è”"
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
#, fuzzy
msgid "Floating ip is not associated."
msgstr "浮动ip %(address)s 没有被关è”。"
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr "é•œåƒå¿…é¡»å¯ç”¨ã€‚"
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr "准备开始终止实例"
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr "é‡å¯å®žä¾‹ %r"
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr "准备åœæ­¢å®žä¾‹"
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr "准备å¯åŠ¨å®žä¾‹"
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr "è§£é™¤é•œåƒ %s 的注册"
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, 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:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr "用户或者组没有确定"
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr "仅仅支æŒç»„\"all\""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr "operation_type必须添加或者移除"
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr "æ­£åœ¨æ›´æ–°é•œåƒ %s çš„ publicity 属性"
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "无法在 %d 秒内åœæ­¢å®žä¾‹"
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
#, fuzzy
msgid "Expecting a list of resources"
msgstr "获å–实例列表"
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
#, fuzzy
msgid "Only instances implemented"
msgstr "实例 - %s ä¸å­˜åœ¨"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "获å–实例列表"
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
#, fuzzy
msgid "Invalid CIDR"
msgstr "无效的"
@@ -2048,47 +2001,87 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
#, fuzzy
msgid "Invalid proxy request signature."
msgstr "无效的请求:%s"
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: 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:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2096,64 +2089,65 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
msgid "limit param must be an integer"
msgstr "limit å‚数必须是整数"
-#: nova/api/openstack/common.py:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr "limitå‚数必须是正数"
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr "offset å‚数必须是整数"
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr "offset å‚数必须是正数"
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr "没有找到标记 [%s]"
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr "href %s ä¸åŒ…å«ç‰ˆæœ¬"
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr "超过镜åƒå…ƒæ•°æ®é™åˆ¶"
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
#, fuzzy
msgid "Invalid image metadata"
msgstr "无效的元数æ®"
-#: nova/api/openstack/common.py:361
+#: nova/api/openstack/common.py:362
#, python-format
msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
msgstr "'%(action)s' 针对处于 %(attr)s %(state)s 的实例是无法进行"
-#: nova/api/openstack/common.py:364
-#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+#: nova/api/openstack/common.py:366
+#, fuzzy, python-format
+msgid "Instance is in an invalid state for '%s'"
msgstr "实例针对 '%(action)s' 处于无效状æ€"
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr "æ‹’ç»å¿«ç…§è¯·æ±‚,快照当å‰æœªè¢«æ¿€æ´»"
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr "该时刻实例快照是ä¸å…许的。"
@@ -2163,21 +2157,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"
@@ -2188,6 +2186,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"
@@ -2207,14 +2206,14 @@ msgstr "调用扩展工厂 %s"
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "加载扩展 %(ext_factory)s 失败:%(exc)s"
-#: nova/api/openstack/extensions.py:346
+#: 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
-#, python-format
-msgid "Failed to load extension %(ext_name)s: %(exc)s"
+#: 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"
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2257,13 +2256,13 @@ msgstr "请求中没有æ供主体"
msgid "There is no such action: %s"
msgstr "没有该动作:%s"
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr "错误格å¼çš„请求主体"
@@ -2272,20 +2271,23 @@ msgstr "错误格å¼çš„请求主体"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "调用 getter %s"
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "ä¸æ”¯æŒçš„Content-Type"
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2298,12 +2300,12 @@ msgstr "元素ä¸æ˜¯å­èŠ‚点"
msgid "root element selecting a list"
msgstr "根元素选择列表"
-#: nova/api/openstack/xmlutil.py:744
+#: nova/api/openstack/xmlutil.py:742
#, python-format
msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
msgstr "模æ¿æ•°ä¸åŒ¹é…;把slave %(slavetag)s 添加到master %(mastertag)s"
-#: nova/api/openstack/xmlutil.py:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr "subclasses必须执行construct()!"
@@ -2311,17 +2313,17 @@ msgstr "subclasses必须执行construct()!"
msgid "Initializing extension manager."
msgstr "正在åˆå§‹åŒ–扩展管ç†å‘˜ã€‚"
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, fuzzy, python-format
msgid "Invalid is_public filter [%s]"
msgstr "用户 %s çš„ç­¾å无效"
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, fuzzy, python-format
msgid "Invalid minRam filter [%s]"
msgstr "用户 %s çš„ç­¾å无效"
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2357,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 "实例并ä¸æ˜¯æŒ‡å®šç½‘络的æˆå‘˜"
@@ -2386,230 +2390,305 @@ msgstr "æœåŠ¡å™¨ä¸å­˜åœ¨"
msgid "Metadata item was not found"
msgstr "元数æ®é¡¹ç›®æœªæ‰¾åˆ°"
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr "无效的changes-since值"
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "准备å°è¯•è½¯åˆ é™¤å®žä¾‹ %s"
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "主机 %(host)s 没有找到。"
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr "无法找到实例"
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr "错误的个性化格å¼ï¼šä¸¢å¤± %s"
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr "æŸå的个性化格å¼"
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr "个性化 %s 的内容无法解ç "
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
#, fuzzy
msgid "Unknown argment : port"
msgstr "未知的guestmount错误"
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, fuzzy, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr "æŸå的网络格å¼ï¼šç½‘络 uuid æ ¼å¼ä¸æ­£ç¡® (%s)"
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr "æŸå的网络格å¼ï¼šç½‘络 uuid æ ¼å¼ä¸æ­£ç¡® (%s)"
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "ä¸æ­£ç¡®çš„固定 IP 地å€(%s)"
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "ä¸å…许é‡å¤çš„网络(%s)"
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr "错误的网络格å¼ï¼šä¸¢å¤±%s"
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr "错误的网络格å¼"
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr "Userdata 内容无法解ç "
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr "accessIPv4 ä¸æ˜¯æ­£ç¡®çš„IPv4æ ¼å¼"
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
#, fuzzy
msgid "accessIPv6 is not proper IPv6 format"
msgstr "accessIPv4 ä¸æ˜¯æ­£ç¡®çš„IPv4æ ¼å¼"
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr "æœåŠ¡å™¨å称未定义"
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr "æ供了无效的flavorRef。"
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
#, fuzzy
msgid "min_count must be an integer value"
msgstr "limit å‚数必须是整数"
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
#, fuzzy
msgid "max_count must be an integer value"
msgstr "limit å‚数必须是整数"
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr "无法找到请求的镜åƒ"
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr "æ供了无效的key_name。"
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
#, fuzzy
msgid "HostId cannot be updated."
msgstr "idä¸èƒ½æ˜¯None"
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
#, fuzzy
msgid "Personality cannot be updated."
msgstr "idä¸èƒ½æ˜¯None"
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr "实例还没有调整大å°ã€‚"
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "实例 %(instance_id)s 没有找到。"
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr "é‡å¯çš„å‚æ•°'type'æ—¢ä¸æ˜¯HARD也ä¸æ˜¯SOFT"
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr "缺少é‡å¯çš„å‚æ•°'type'"
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr "无法找到请求的类型。"
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
#, fuzzy
msgid "Resize requires a flavor change."
msgstr "调整大å°éœ€è¦å°ºå¯¸çš„改å˜ã€‚"
-#: nova/api/openstack/compute/servers.py:1118
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+#, 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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "%s 是一个正确的实例å称"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
msgid "Missing imageRef attribute"
msgstr "缺少属性imageRef"
-#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr "æ供了无效的imageRef。"
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr "缺少属性flavorRef"
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr "没有确定adminPass"
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr "无效的adminPass"
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
#, fuzzy
msgid "Unable to set password on instance"
msgstr "é‡æ–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr "无法解æžå…ƒæ•°æ®é”®/值对"
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "调整大å°è¯·æ±‚中的属性'flavorRef'无效。"
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr "调整大å°è¯·æ±‚è¦æ±‚有属性'flavorRef'。"
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr "无效的请求主体"
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr "无法解æžè¯·æ±‚中的imageRef。"
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr "无法找到用æ¥é‡æ–°åˆ›å»ºçš„é•œåƒ"
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr "实体createImage需è¦å±žæ€§name"
-#: nova/api/openstack/compute/servers.py:1409
-#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, fuzzy, python-format
+msgid "Removing options '%s' from query"
msgstr "正在从查询语å¥ä¸­ç§»é™¤é€‰é¡¹ '%(unk_opt_str)s'"
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2697,7 +2776,7 @@ msgstr "host与block_migration必须确定"
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, fuzzy, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr "实例 %(id)s 到主机 %(host)s 的动æ€è¿ç§»å¤±è´¥"
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2716,19 +2795,19 @@ msgid "Compute.api::resetState %s"
msgstr "compute.api::resume %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
-#, python-format
-msgid "Cannot show aggregate: %(id)s"
-msgstr ""
+#, fuzzy, python-format
+msgid "Cannot show aggregate: %s"
+msgstr "更新代ç†å¤±è´¥ï¼š%(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, fuzzy, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr "更新代ç†å¤±è´¥ï¼š%(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:127
-#, python-format
-msgid "Cannot delete aggregate: %(id)s"
-msgstr ""
+#, fuzzy, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr "更新代ç†å¤±è´¥ï¼š%(resp)r"
#: nova/api/openstack/compute/contrib/aggregates.py:140
#, python-format
@@ -2783,30 +2862,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 ""
@@ -2889,28 +2973,28 @@ msgstr "网络ä¸åŒ…å«åŠ¨ä½œ %s"
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr "%s 必须是'MANUAL' 或者 'AUTO'。"
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
#, fuzzy
msgid "host and onSharedStorage must be specified."
msgstr "host与block_migration必须确定"
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, fuzzy, python-format
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 没有找到。"
@@ -2961,7 +3045,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:437
msgid "Missing parameter dict"
msgstr "缺少å‚æ•° dict"
@@ -3014,7 +3098,7 @@ msgid "Floating ip %(address)s is not associated with instance %(id)s."
msgstr "浮动ip %(address)s 没有被关è”。"
#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
-#: nova/cmd/manage.py:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -3048,29 +3132,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr "把主机 %(host)s 设置为 %(state)s。"
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, fuzzy, python-format
msgid "Enabling host %s."
msgstr "调用 getter %s"
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, fuzzy, python-format
msgid "Disabling host %s."
msgstr "正在更新主机状æ€"
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr "Describe-resource是åªæœ‰ç®¡ç†å‘˜æ‰èƒ½æ‰§è¡Œçš„功能。"
@@ -3095,11 +3179,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'"
@@ -3216,16 +3295,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应该是整数"
@@ -3235,7 +3314,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:348
msgid "Not enough parameters to build a valid rule."
msgstr "å‚æ•°ä¸å¤Ÿåˆ›å»ºæœ‰æ•ˆè§„则。"
@@ -3254,16 +3333,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:356
#, 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:440
msgid "Security group not specified"
msgstr "没有指定安全组"
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr "安全组å称ä¸èƒ½æ˜¯ç©º"
@@ -3277,12 +3356,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错误"
@@ -3301,174 +3380,236 @@ msgstr "vol=%s"
msgid "Delete volume with id: %s"
msgstr "删除id为 %s çš„å·"
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
#, fuzzy, python-format
msgid "Instance %s is not attached."
msgstr "实例 %s:没有å¯åŠ¨"
-#: nova/api/openstack/compute/contrib/volumes.py:377
+#: nova/api/openstack/compute/contrib/volumes.py:380
#, fuzzy, python-format
msgid "Bad volumeId format: volumeId is not in proper format (%s)"
msgstr "æŸå的网络格å¼ï¼šç½‘络 uuid æ ¼å¼ä¸æ­£ç¡® (%s)"
-#: nova/api/openstack/compute/contrib/volumes.py:396
+#: 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 "æŠŠå· %(volume_id)s 附加到实例 %(server_id)s çš„ %(device)s 设备上"
-#: nova/api/openstack/compute/contrib/volumes.py:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr "删除id为 %s 的快照"
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr "ä¸ºå· %s 创建快照"
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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 ""
-#: nova/cells/messaging.py:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "没有适用于消æ¯çš„方法:%s"
-#: nova/cells/messaging.py:424
+#: 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:503
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "没有适用于消æ¯çš„方法:%s"
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, fuzzy, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr "正在删除基文件:%s"
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: 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:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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"
@@ -3491,7 +3632,7 @@ msgstr "å­ç½‘掩ç å·²å­˜å…¥openvpné…ç½®"
msgid "Launching VPN for %s"
msgstr "å¯åŠ¨VPN %s"
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "无法创建å·"
@@ -3511,282 +3652,282 @@ msgstr "元素ä¸æ˜¯å­èŠ‚点"
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
#, fuzzy
msgid "leasing ip"
msgstr "正在创建镜åƒ"
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
#, fuzzy
msgid "releasing ip"
msgstr "正在创建镜åƒ"
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
#, fuzzy
msgid "Reserved"
msgstr "已接收 %s"
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
#, fuzzy, python-format
msgid "error: %s"
msgstr "æ•°æ®åº“错误:%s"
-#: nova/cmd/manage.py:295
+#: nova/cmd/manage.py:294
#, fuzzy
msgid "network"
msgstr "é‡ç½®ç½‘络"
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
#, fuzzy
msgid "IP address"
msgstr "起始地å€"
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
#, fuzzy
msgid "No fixed IP found."
msgstr "找ä¸åˆ°å›ºå®šIP。"
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, fuzzy, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr "没有固定ip与实例关è”"
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
#, fuzzy
msgid "No floating IP addresses have been defined."
msgstr "浮动ip %(address)s 已被关è”。"
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr "id"
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr "IPv4"
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr "IPv6"
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr "起始地å€"
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr "DNS1"
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr "DNS2"
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr "VlanID"
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr "项目"
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr "uuid"
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
#, fuzzy
msgid "No networks found"
msgstr "没有找到网络"
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
#, fuzzy
msgid "UUID is required to delete Quantum Networks"
msgstr "创建网络 %(req)s 是必è¦çš„。"
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
#, fuzzy
msgid "instance"
msgstr "åœæ­¢å®žä¾‹ %r"
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr "æœåŠ¡ %(service_id)s 没有找到。"
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, fuzzy, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr "æœåŠ¡ %(service_id)s 没有找到。"
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
#, fuzzy
msgid "An unexpected error has occurred."
msgstr "æ„外错误:%s"
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
#, fuzzy
msgid "PROJECT"
msgstr "项目"
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3870,254 +4011,270 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr "超过实例的é…é¢ã€‚您åªèƒ½å†è¿è¡Œ %s 个此类型的实例。"
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
#, fuzzy
msgid "Metadata property key greater than 255 characters"
msgstr "安全组 %s ä¸èƒ½æ¯”255个字符更长。"
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
#, fuzzy
msgid "Metadata property value greater than 255 characters"
msgstr "安全组 %s ä¸èƒ½æ¯”255个字符更长。"
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "无法附加å·åˆ°å®žä¾‹ %s"
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "准备è¿è¡Œ %s 个实例"
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "准备开始终止实例"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "实例类型 %(instance_type_id)s 没有找到。"
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "准备开始终止实例"
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, fuzzy, python-format
msgid "instance's host %s is down, deleting from database"
msgstr "没有托管实例 %s,立刻删除"
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "准备å°è¯•è½¯åˆ é™¤å®žä¾‹ %s"
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "准备å°è¯•ç»ˆæ­¢å®žä¾‹ %s"
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
#, fuzzy
msgid "Going to try to stop instance"
msgstr "准备å°è¯•åœæ­¢å®žä¾‹ %s"
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
#, fuzzy
msgid "Going to try to start instance"
msgstr "准备å°è¯•å¯åŠ¨å®žä¾‹ %s"
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr "æœç´¢æ¡ä»¶ï¼š %s"
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "开始为虚拟机 %s 快照"
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr "flavor_id为空。å‡å®šåœ¨è¿ç§»ã€‚"
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, 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:2035
+#: nova/compute/api.py:2084
#, 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:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "准备å°è¯•ç»ˆæ­¢å®žä¾‹ %s"
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr "安全组 %s æ—¢ä¸æ˜¯å­—符串也ä¸æ˜¯unicode"
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr "安全组 %s ä¸èƒ½ä¸ºç©ºã€‚"
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, 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:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr "安全组 %s ä¸èƒ½æ¯”255个字符更长。"
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr "创建安全组 %s"
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr "安全组 %s å·²ç»å­˜åœ¨"
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "无法销æ¯VBD %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "无法销æ¯VBD %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
#, fuzzy
msgid "Security group is still in use"
msgstr "安全组id应该是整数"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr "删除安全组 %s"
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr "没有找到规则 (%s)"
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
#, fuzzy
msgid "Quota exceeded, too many security group rules."
msgstr "添加安全组规则:%r"
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr "æŽˆæƒ %s 安全组入å£æƒé™"
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr "撤销 %s 安全组入å£æƒé™"
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr "安全组id应该是整数"
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, fuzzy, python-format
msgid "Aborting claim: %s"
msgstr "实例的network_info:|%s|"
@@ -4152,401 +4309,388 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
#, fuzzy, python-format
-msgid "'%s' argument must be a positive integer"
-msgstr "创建å‚数必须是正整数"
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr "createBackup的属性 'rotation'必须是整数"
-#: nova/compute/flavors.py:113
+#: nova/compute/flavors.py:117
#, fuzzy
msgid "'rxtx_factor' argument must be a positive float"
msgstr "创建å‚数必须是正整数"
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
-msgstr ""
-
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr "æ•°æ®åº“错误:%s"
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr "未找到è¦åˆ é™¤çš„实例类型 %s"
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "é‡æ–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr "nova-computeé‡å¯åŽï¼Œå®žä¾‹æ­£åœ¨é‡å¯ã€‚"
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
#, fuzzy
msgid "Hypervisor driver does not support resume guests"
msgstr "虚拟机管ç†ç¨‹åºé©±åŠ¨ä¸æ”¯æŒé˜²ç«å¢™è§„则"
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "挂起实例失败"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "虚拟机管ç†ç¨‹åºé©±åŠ¨ä¸æ”¯æŒé˜²ç«å¢™è§„则"
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "æ„外的状æ€ç "
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "正在检查状æ€"
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr "正在设置 bdm %s"
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "释放实例的网络"
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "实例生产失败"
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "æ•°æ®åº“错误:%s"
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "正在å¯åŠ¨è™šæ‹Ÿæœº"
-#: nova/compute/manager.py:1171
+#: 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:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "实例的network_info:|%s|"
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "实例å—设备设置失败"
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "实例生产失败"
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "释放实例的网络"
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s 实例"
-
-#: nova/compute/manager.py:1342
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "释放实例的网络"
-#: nova/compute/manager.py:1363
+#: 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:1366
+#: nova/compute/manager.py:1359
#, fuzzy, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "忽略异常 DiskNotFound: %s"
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "终止bdm %s"
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s。把实例的 vm_state设置为ERROR"
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
#, fuzzy
msgid "Rebuilding instance"
msgstr "正在é‡æ–°åˆ›å»ºå®žä¾‹ %s"
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, fuzzy, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr "%(path)s 在共享存储上:%(reason)s"
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "ä¸ºå· %s 创建快照"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
#, fuzzy
msgid "Rebooting instance"
msgstr "正在é‡å¯è™šæ‹Ÿæœº %s"
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, 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:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "无法é‡æ–°åˆ›å»ºå®žä¾‹ [%(instance_uuid)s]: %(exc)s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "实例 %s:é‡å¯"
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
#, fuzzy
msgid "instance snapshotting"
msgstr "实例 %s: 快照中"
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, 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:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "找到 %(num_images)d ä¸ªé•œåƒ (rotation: %(rotation)d)"
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr "è½®æ¢å‡º%d个备份"
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr "æ­£åœ¨åˆ é™¤é•œåƒ %s"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr "设置管ç†å‘˜å¯†ç å¤±è´¥ã€‚实例 %s 没有è¿è¡Œ"
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
#, fuzzy
msgid "Root password set"
msgstr "实例 %s:Root密ç å·²è®¾ç½®"
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
#, fuzzy
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr "该驱动ä¸èƒ½æ‰§è¡Œset_admin_password。"
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, fuzzy, python-format
msgid "set_admin_password failed: %s"
msgstr "该驱动ä¸èƒ½æ‰§è¡Œset_admin_password。"
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
#, fuzzy
msgid "error setting admin password"
msgstr "设置管ç†å‘˜å¯†ç å‡ºé”™"
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, fuzzy, python-format
msgid ""
"trying to inject a file into a non-running (state: "
@@ -4555,179 +4699,184 @@ msgstr ""
"试图把一个文件注入到没有è¿è¡Œçš„实例:%(instance_uuid)s (状æ€: %(current_power_state)s 预计: "
"%(expected_state)s)"
-#: nova/compute/manager.py:2022
+#: nova/compute/manager.py:2013
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "注入文件路径:'%s'"
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "挂起实例失败"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "æ•°æ®åº“错误:%s"
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
#, fuzzy
msgid "Unrescuing"
msgstr "实例 %s:å–消救æ´"
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "设置实例 %(instance_uuid)s 至 ERROR 状æ€"
+
+#: nova/compute/manager.py:2365
#, fuzzy
msgid "Instance has no source host"
msgstr "实例没有å·ã€‚"
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr "目标与æ¥æºä¸€æ ·ã€‚"
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
#, fuzzy
msgid "Pausing"
msgstr "正在更新。"
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "实例 %s :获å–诊断"
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
#, fuzzy
msgid "Reset network"
msgstr "é‡ç½®ç½‘络"
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
#, fuzzy
msgid "Inject network info"
msgstr "实例 %s:注入网络信æ¯"
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr "将注入的network_info:|%s|"
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
#, fuzzy
msgid "Get console output"
msgstr "获å–实例 %s 控制å°è¾“出"
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
#, fuzzy
msgid "Getting vnc console"
msgstr "实例 %s:正在获得VNC控制å°"
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
#, fuzzy
msgid "Getting spice console"
msgstr "实例 %s:正在获得VNC控制å°"
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr "å· %(volume_id)s 正在 %(mountpoint)s 上å¯åŠ¨"
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr "æ­£åœ¨æŠŠå· %(volume_id)s 附加到 %(mountpoint)s"
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, 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:2991
+#: nova/compute/manager.py:3023
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "æ­£åœ¨æŠŠå· %(volume_id)s 附加到 %(mountpoint)s"
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr "å· %(volume_id)s 从挂载点 %(mp)s 分离"
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "从未知实例%s中分离å·"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "æ­£åœ¨æŠŠå· %(volume_id)s 附加到 %(mountpoint)s"
-#: nova/compute/manager.py:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, fuzzy, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr "实例 %s 的网络分é…"
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "网络 %(network_id)s 没有找到。"
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "主机 %(host)s 没有找到。"
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr "预在线è¿ç§»åœ¨%(dest)s失败"
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
#, fuzzy
msgid "_post_live_migration() is started.."
msgstr "post_live_migration()å·²ç»å¯åŠ¨ã€‚"
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr "把实例è¿ç§»åˆ° %(dest)s æˆåŠŸå®Œæˆã€‚"
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4735,170 +4884,175 @@ msgstr ""
"你会看到错误“libvirt: QEMU error: Domain not found: no domain with matching "
"name。â€è¿™ä¸ªé”™è¯¯å¯ä»¥æ”¾å¿ƒçš„忽略。"
-#: nova/compute/manager.py:3377
+#: nova/compute/manager.py:3416
#, fuzzy
msgid "Post operation of migration started"
msgstr "è¿ç§»åŽæ“作å¯åŠ¨"
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "为ip: %s获å–元数æ®å¤±è´¥"
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, 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:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, fuzzy, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr "为实例 %(instance_uuid)s 关闭虚拟机"
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "没有找到实例 %(instance_id)s"
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
#, fuzzy
msgid "In ERROR state"
msgstr "节点处于未知的错误状æ€ã€‚"
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr "更新带宽使用缓存"
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
#, fuzzy
msgid "Updating volume usage cache"
msgstr "更新带宽使用缓存"
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr "更新主机状æ€"
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, 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:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "实例未å¯åŠ¨"
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0,跳过..."
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr "回收删除的实例"
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "LoggingVolumeDriver: %s"
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, fuzzy, python-format
msgid "No service record for host %s"
msgstr "计算节点 %s 没有æœåŠ¡"
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, 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:4154
+#, fuzzy, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr "设置实例 %(instance_uuid)s 至 ERROR 状æ€"
+
#: nova/compute/resource_tracker.py:92
msgid ""
"Host field should not be set on the instance until resources have been "
@@ -5010,18 +5164,18 @@ msgstr "无法找到实例 %s 的宿主机"
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5102,56 +5256,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
#, 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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5168,56 +5338,61 @@ msgstr "version应该是整数"
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5254,32 +5429,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 "é•œåƒä¸­ä¸å®‰å…¨çš„文件å"
@@ -5298,16 +5478,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"
@@ -5422,103 +5606,103 @@ msgstr "驱动仅支æŒå…¥å£ç±»åž‹ 'a'。"
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr "试图移除ä¸å­˜åœ¨çš„链 %s。"
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr "未知链:%r"
-#: nova/network/linux_net.py:280
+#: 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 "试图移除ä¸å­˜åœ¨çš„规则:%(chain)r %(rule)r %(wrap)r %(top)r"
-#: nova/network/linux_net.py:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr "IPTablesManager.applyæˆåŠŸå®Œæˆ"
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, fuzzy, python-format
msgid "arping error for ip %s"
msgstr "在 %s 中å‘生 httplib 错误: "
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: 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:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "挂起进程 dnsmasq 时抛出 %s"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d 过期了,é‡æ–°å¯åŠ¨dnsmasq"
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "æ€æŽ‰è¿›ç¨‹ radvd 时抛出 %s"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d 过期了,é‡æ–°å¯åŠ¨radvd"
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "无效的状æ€ï¼š'%s'"
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "正在开å¯VLANæŽ¥å£ %s"
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "ä¿è¯æ¡¥ %s"
-#: nova/network/linux_net.py:1459
+#: 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:1495
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "挂起实例失败"
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "ä¿è¯æ¡¥ %s"
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "ä¿è¯æ¡¥ %s"
@@ -5618,38 +5802,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr "cidr å·²ç»åœ¨ä½¿ç”¨"
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr "请求的cidr (%(cidr)s) 与已存在的超网络 (%(super)s) 冲çª"
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr "请求的cidr (%(cidr)s) 与已存在的较å°çš„cidr (%(smaller)s) 冲çª"
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr "网络已ç»å­˜åœ¨ã€‚"
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr "网路在删除å‰å¿…须与项目 %s 解除关è”"
-#: nova/network/manager.py:1794
+#: nova/network/manager.py:1795
msgid ""
"The sum between the number of networks and the vlan start cannot be "
"greater than 4094"
msgstr "网络数é‡ä¸ŽVLAN起始数之和ä¸èƒ½å¤§äºŽ4049"
-#: nova/network/manager.py:1801
+#: nova/network/manager.py:1802
#, fuzzy, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5685,80 +5869,80 @@ msgstr "_delete: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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。"
@@ -5768,68 +5952,73 @@ msgstr "找ä¸åˆ°é€‚åˆid %(id)s 的浮动IP。"
msgid "Quantum Error creating security group %s"
msgstr "删除安全组 %s"
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "删除安全组 %s"
-#: nova/network/security_group/quantum_driver.py:137
+#: 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:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5841,32 +6030,52 @@ 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"
msgstr "外键约æŸæ— æ³•åˆ é™¤"
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, fuzzy, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr "获得信å·é‡ \"%(lock)s\" 为方法 \"%(method)s\" ...é”"
-#: nova/openstack/common/lockutils.py:195
+#: nova/openstack/common/lockutils.py:199
#, fuzzy, python-format
msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
msgstr "正在 试图获å–é” \"%(lock)s\" 为方法 \"%(method)s\"...é”"
-#: nova/openstack/common/lockutils.py:222
+#: nova/openstack/common/lockutils.py:226
#, fuzzy, python-format
msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr "èŽ·å¾—æ–‡ä»¶é” \"%(lock)s\" 为方法 \"%(method)s\"...é”"
-#: nova/openstack/common/lockutils.py:230
+#: nova/openstack/common/lockutils.py:234
#, fuzzy, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr "èŽ·å¾—æ–‡ä»¶é” \"%(lock)s\" 为方法 \"%(method)s\"...é”"
@@ -5876,17 +6085,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"
@@ -5961,21 +6170,102 @@ msgstr "å‘现未知的 utils.execute 关键字å‚数:%r"
msgid "Running cmd (subprocess): %s"
msgstr "正在è¿è¡Œcmd (subprocess):%s"
+#: 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 "è¿è¡Œç»“果为 %s"
+
#: nova/openstack/common/processutils.py:179
#, python-format
msgid "%r failed. Retrying."
msgstr "%r 失败,é‡è¯•ã€‚"
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "è¿è¡Œcmd (SSH):%s"
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr "SSH上ä¸æ”¯æŒçŽ¯å¢ƒå˜é‡"
+
+#: nova/openstack/common/processutils.py:225
+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: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 次。"
@@ -6104,12 +6394,12 @@ msgstr "åšå¼‚æ­¥fanout cast"
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "å‘生未知异常。"
-#: nova/openstack/common/rpc/common.py:104
+#: nova/openstack/common/rpc/common.py:105
#, python-format
msgid ""
"Remote error: %(exc_type)s %(value)s\n"
@@ -6118,52 +6408,57 @@ msgstr ""
"远程错误:%(exc_type)s %(value)s\n"
"%(traceback)s。"
-#: nova/openstack/common/rpc/common.py:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr "无效的RPC连接é‡ç”¨ã€‚"
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6194,44 +6489,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 ""
@@ -6481,7 +6776,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, fuzzy, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6489,37 +6784,49 @@ msgid ""
msgstr "无法è¿ç§» %(instance_id)s 到 %(dest)s 上:缺少内存(主机:%(avail)s <= 实例:%(mem_inst)s)"
#: nova/scheduler/filter_scheduler.py:73
-#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+#, fuzzy, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
msgstr "å°è¯•åˆ›å»º %(num_instances)d 个实例"
-#: nova/scheduler/filter_scheduler.py:227
+#: nova/scheduler/filter_scheduler.py:77
+#, fuzzy, python-format
+msgid "Request Spec: %s"
+msgstr "请求:%s"
+
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "过滤掉的主机 %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:357
-#, python-format
-msgid "Choosing host %(chosen_host)s"
-msgstr ""
+#: nova/scheduler/filter_scheduler.py:361
+#, fuzzy, python-format
+msgid "Weighed %(hosts)s"
+msgstr "过滤掉的主机 %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:391
+#: 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)"
@@ -6591,10 +6898,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
@@ -6602,6 +6916,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"
@@ -6637,14 +6956,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 ""
@@ -6714,47 +7033,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 ""
@@ -6807,82 +7126,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr "试图实例化å•ä¾‹"
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr "伪执行命令(å­è¿›ç¨‹ï¼‰ï¼š%s"
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr "ä¼ªå‘½ä»¤åŒ¹é… %s"
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr "伪命令引起异常 %s"
-#: nova/tests/fake_utils.py:101
+#: nova/tests/fake_processutils.py:100
#, python-format
msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
msgstr "伪命令的标准输出stdout='%(stdout)s' 标准错误输出 stderr='%(stderr)s'"
-#: nova/tests/fake_volume.py:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr "状æ€å¿…é¡»å¯ç”¨"
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr "å·²ç»é™„加"
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6895,63 +7174,75 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, python-format
msgid "Running instances: %s"
msgstr "正在è¿è¡Œçš„实例:%s"
-#: 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr "终止实例之åŽï¼š%s"
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr "内部错误"
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr "强制æ€æ­»å®žä¾‹åŽï¼š%s"
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
#, fuzzy
msgid "spawn error"
msgstr "未知的guestmount错误"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6961,22 +7252,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"
@@ -7041,35 +7332,74 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+#, fuzzy
+msgid "Unable to load the virtualization driver"
msgstr "无法加载虚拟驱动:%s"
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7193,19 +7523,19 @@ msgstr "vmwareapi ä¸æ”¯æŒæš‚åœ"
msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
msgstr "伪命令的标准输出stdout='%(stdout)s' 标准错误输出 stderr='%(stderr)s'"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7376,15 +7706,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7443,97 +7773,97 @@ msgstr "未找到分区"
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr "é•œåƒå·²ç»æŒ‚è½½"
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, fuzzy, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr "忽略å‘é•œåƒ %(img_id)s 注入的数æ®çš„错误 (%(e)s)"
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, fuzzy, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr "挂载文件系统失败:%s"
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, fuzzy, python-format
msgid "Failed to umount container filesystem: %s"
msgstr "挂载文件系统失败:%s"
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, fuzzy, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr "忽略å‘é•œåƒ %(img_id)s 注入的数æ®çš„错误 (%(e)s)"
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7872,7 +8202,7 @@ msgstr "实例代ç†ç‰ˆæœ¬ï¼š%s"
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr "正在更新主机状æ€"
@@ -7887,24 +8217,24 @@ msgstr "获å–实例 %s 控制å°è¾“出"
msgid "Host IP address is: %s"
msgstr "é‡Šæ”¾åœ°å€ %s"
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -8054,51 +8384,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 ""
@@ -8238,12 +8568,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "为实例 |%s| 分é…浮动IP"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: 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'"
@@ -8409,7 +8739,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr "无法确定iscsi initiatoråå­—"
@@ -8443,247 +8773,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
#, fuzzy
msgid "During wait destroy, instance disappeared."
msgstr "%s 在è¿è¡Œä¸­æ¶ˆå¤±äº†ã€‚"
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr "实例销æ¯æˆåŠŸã€‚"
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "准备åœæ­¢å®žä¾‹"
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr "删除实例文件 %(target)s"
-#: nova/virt/libvirt/driver.py:865
+#: 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:908
+#: 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:915
+#: 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:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
#, fuzzy
msgid "During detach_volume, instance disappeared."
msgstr "%s 在è¿è¡Œä¸­æ¶ˆå¤±äº†ã€‚"
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "没有网络定义。"
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
#, fuzzy
msgid "During detach_interface, instance disappeared."
msgstr "%s 在è¿è¡Œä¸­æ¶ˆå¤±äº†ã€‚"
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "没有网络定义。"
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "实例æˆåŠŸé‡å¯ã€‚"
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "é‡æ–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
#, fuzzy
msgid "Instance shutdown successfully."
msgstr "实例æˆåŠŸç”Ÿäº§ã€‚"
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr "实例æˆåŠŸé‡å¯ã€‚"
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr "实例在è¿è¡Œ"
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr "实例æˆåŠŸç”Ÿäº§ã€‚"
-#: nova/virt/libvirt/driver.py:1560
+#: 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:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "用户没有管ç†å‘˜æƒé™"
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "正在创建镜åƒ"
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: 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:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8691,74 +9021,74 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr "libvirt版本过旧(ä¸æ”¯æŒgetVersion)"
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8766,37 +9096,37 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr "å—存储è¿ç§»æ— æ³•åœ¨å…±äº«å­˜å‚¨ä½¿ç”¨"
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
#, fuzzy
msgid "Live migration can not be used without shared storage."
msgstr "å—存储è¿ç§»æ— æ³•åœ¨å…±äº«å­˜å‚¨ä½¿ç”¨"
-#: nova/virt/libvirt/driver.py:3047
+#: nova/virt/libvirt/driver.py:3059
#, fuzzy, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
@@ -8805,7 +9135,7 @@ msgstr ""
"无法è¿ç§»%(instance_id)s 到 %(dest)s 上:缺少ç£ç›˜(主机:%(available)s <= "
"实例:%(necessary)s)"
-#: nova/virt/libvirt/driver.py:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
@@ -8814,7 +9144,7 @@ msgstr ""
"å·²å¯åŠ¨å®žä¾‹çš„CPUä¿¡æ¯ï¼š\n"
"%s"
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8829,71 +9159,71 @@ msgstr ""
"\n"
"å‚考 %(u)s"
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "预在线è¿ç§»åœ¨%(dest)s失败"
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: 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:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: 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:3619
+#: nova/virt/libvirt/driver.py:3647
#, fuzzy
msgid "Instance running successfully."
msgstr "实例 %s æˆåŠŸè¿è¡Œã€‚"
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
#, fuzzy
msgid "Starting finish_migration"
msgstr "实例 %s:开始执行 finish_migration"
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
#, fuzzy
msgid "Starting finish_revert_migration"
msgstr "实例 %s:开始执行 finish_revert_migration"
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, fuzzy, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr "删除实例文件 %(target)s"
@@ -8926,95 +9256,95 @@ msgstr "å称为 %(name)s çš„nwfilter(%(instance_filter_name)s) 未找到。"
msgid "iptables firewall: Setup Basic Filtering"
msgstr "iptables 防ç«å¢™ï¼šè®¾ç½®åŸºæœ¬çš„过滤规则"
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, fuzzy, python-format
msgid "Unknown image_type=%s"
msgstr "未知的ç£ç›˜é•œåƒå¥æŸ„:%s"
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, fuzzy, python-format
msgid "Reading image info file: %s"
msgstr "正在删除基文件:%s"
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, fuzzy, python-format
msgid "Writing stored info to %s"
msgstr "正在删除基文件:%s"
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr "%s 是一个正确的实例å称"
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr "%s 有一个ç£ç›˜æ–‡ä»¶"
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr "实例 %(instance)s 由文件 %(backing)s æ¥å¤‡ä»½"
-#: nova/virt/libvirt/imagecache.py:350
+#: 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 "实例 %(instance)s 正在使用的备份文件 %(backing)s 没有出现在镜åƒæœåŠ¡é‡Œã€‚"
-#: nova/virt/libvirt/imagecache.py:426
+#: nova/virt/libvirt/imagecache.py:422
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image verification failed"
msgstr "%(container_format)s-%(id)s (%(base_file)s):镜åƒéªŒè¯å¤±è´¥"
-#: nova/virt/libvirt/imagecache.py:436
+#: nova/virt/libvirt/imagecache.py:432
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): image verification skipped, no hash "
"stored"
msgstr "%(container_format)s-%(id)s (%(base_file)s):镜åƒéªŒè¯è·³è¿‡ï¼Œæ²¡æœ‰æ•£åˆ—存储"
-#: nova/virt/libvirt/imagecache.py:445
+#: nova/virt/libvirt/imagecache.py:441
#, fuzzy, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr "%(container_format)s-%(id)s (%(base_file)s):正在检查中"
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, fuzzy, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr "删除 %(base_file)s 失败,错误是 %(error)s"
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr "基文件太新ä¸éœ€è¦åˆ é™¤ï¼š%s"
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr "正在删除基文件:%s"
-#: nova/virt/libvirt/imagecache.py:482
+#: nova/virt/libvirt/imagecache.py:478
#, python-format
msgid "Failed to remove %(base_file)s, error was %(error)s"
msgstr "删除 %(base_file)s 失败,错误是 %(error)s"
-#: nova/virt/libvirt/imagecache.py:493
+#: nova/virt/libvirt/imagecache.py:489
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr "%(container_format)s-%(id)s (%(base_file)s):正在检查中"
-#: nova/virt/libvirt/imagecache.py:517
+#: nova/virt/libvirt/imagecache.py:513
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
@@ -9023,7 +9353,7 @@ msgstr ""
"%(container_format)s-%(id)s (%(base_file)s):正在使用中:本地节点 %(local)d, 远程节点 "
"%(remote)d"
-#: nova/virt/libvirt/imagecache.py:529
+#: nova/virt/libvirt/imagecache.py:525
#, fuzzy, python-format
msgid ""
"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
@@ -9032,51 +9362,51 @@ msgstr ""
"%(container_format)s-%(id)s (%(base_file)s):警告 -- 使用中缺少基文件! 实例: "
"%(instance_list)s"
-#: nova/virt/libvirt/imagecache.py:541
+#: nova/virt/libvirt/imagecache.py:537
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image is not in use"
msgstr "%(container_format)s-%(id)s (%(base_file)s):镜åƒä¸åœ¨ä½¿ç”¨ä¸­"
-#: nova/virt/libvirt/imagecache.py:548
+#: nova/virt/libvirt/imagecache.py:544
#, fuzzy, python-format
msgid "image %(id)s at (%(base_file)s): image is in use"
msgstr "%(container_format)s-%(id)s (%(base_file)s):镜åƒåœ¨ä½¿ç”¨ä¸­"
-#: nova/virt/libvirt/imagecache.py:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr "跳过验è¯ï¼Œåœ¨ %s 上没有基础目录"
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr "验è¯åŸºç¡€é•œåƒ"
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr "未知的基文件:%s"
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr "活跃的基文件:%s"
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr "æŸå的基文件:%s"
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr "å¯åˆ é™¤çš„基文件:%s"
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr "确认完æˆ"
@@ -9095,7 +9425,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. "
@@ -9103,17 +9433,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 ""
@@ -9190,12 +9520,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr "在 %s 未找到iSCSI设备"
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, fuzzy, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -9207,71 +9537,71 @@ msgstr "在 %(mount_device)s 上还没有找到iSCSIå·ã€‚å°†å†æ¬¡æ‰«æ并é‡è
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr "找到iSCSI节点 %(mount_device)s (ç»è¿‡%(tries)s 次å†æ‰«æ)"
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "在 %s 未找到iSCSI设备"
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: 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:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "在 %s 未找到iSCSI设备"
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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 次å†æ‰«æ)"
-#: nova/virt/libvirt/volume.py:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9295,86 +9625,86 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
#, fuzzy
msgid "Connection error connecting PowerVM manager"
msgstr "glanceæœåŠ¡å™¨è¿žæŽ¥é”™è¯¯ï¼Œé‡è¯•ä¸­"
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, fuzzy, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr "正在è¿è¡Œcmd (subprocess):%s"
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "连接到melange失败"
@@ -9398,7 +9728,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 ""
@@ -9467,74 +9797,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, fuzzy, python-format
msgid "LPAR instance '%s' not found"
msgstr "没有找到实例"
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "正在删除基文件:%s"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, fuzzy, python-format
msgid "Creating LPAR instance '%s'"
msgstr "获å–实例列表"
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "实例 %s:正在创建镜åƒ"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, fuzzy, python-format
msgid "Activating the LPAR instance '%s'"
msgstr "准备å¯åŠ¨å®žä¾‹"
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, fuzzy, python-format
msgid "Instance '%s' failed to boot"
msgstr "实例 %s:é‡å¯"
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, fuzzy, python-format
msgid "Instance spawned in %s seconds"
msgstr "实例 %s 生产æˆåŠŸ"
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, fuzzy, python-format
msgid "Stopping instance %s for snapshot."
msgstr "实例 %s: 快照中"
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, fuzzy, python-format
msgid "Shutting down the instance '%s'"
msgstr "æ­£å¯åŠ¨è™šæ‹Ÿæœºå®žä¾‹ %s"
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, fuzzy, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr "准备å¯åŠ¨å®žä¾‹"
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9551,27 +9881,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"
@@ -9638,18 +9968,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 的端å£ç»„"
@@ -10020,56 +10350,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 的目录"
@@ -10192,24 +10522,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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. "
@@ -10218,83 +10548,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"
@@ -10313,24 +10647,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "解密ç§é’¥å¤±è´¥ï¼š%s"
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr "ä¸æ”¯æŒåœ¨XenServerå¯åŠ¨ä¸»æœº"
-#: nova/virt/xenapi/driver.py:630
+#: 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:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "得到异常:%s"
@@ -10470,74 +10804,74 @@ msgstr ""
"网络 %(bridge)s 的 PIF %(pif_rec['uuid'])s 有VLAN id %(pif_vlan)d。期待的数目是 "
"%(vlan_num)d"
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_create: %s"
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: 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:363
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "å·²ç»åˆ†ç¦»"
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "无法移除 VBD %s"
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "æ— æ³•é”€æ¯ VBD %s"
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr "æ— æ³•é”€æ¯ VDI %s"
-#: nova/virt/xenapi/vm_utils.py:465
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10546,305 +10880,298 @@ msgstr ""
"创建了 VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) ä½ç½®åœ¨"
" %(sr_ref)s。"
-#: nova/virt/xenapi/vm_utils.py:479
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "无法找到实例"
-#: nova/virt/xenapi/vm_utils.py:504
+#: 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:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "开始为虚拟机 %s 快照"
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
-#, 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "内核/内存盘 VDI %s 已销æ¯"
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "实例 %s:获å–Glanceé•œåƒå¤±è´¥"
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: 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:1381
+#: 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:1387
+#: 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:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s ä¾ç„¶å¯ç”¨"
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "é‡æ–°æ‰«æ存储库 %s"
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: 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:1615
+#: 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:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO:éžiso内容"
-#: nova/virt/xenapi/vm_utils.py:1620
+#: 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:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr "ISO: 存储库符åˆæ ‡å‡†"
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: 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:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr "ISO:å«æœ‰æœ¬åœ°PBD的存储库"
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: 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:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "æ’å…¥VBD %s... "
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "æ’å…¥VBD %s 完æˆã€‚"
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: 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:1976
+#: 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:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "对 %s è¿è¡Œpygrub"
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "找到Xen内核 %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "没有找到Xen内核。正在å¯åŠ¨HVM。"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10852,55 +11179,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "分区:"
-#: nova/virt/xenapi/vm_utils.py:2038
+#: 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:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "完æˆå†™å…¥åˆ†åŒºè¡¨ %s 。"
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr "直接æ“作接å£æ–‡ä»¶"
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "将实例 '%(instance_uuid)s' 的进度更新到 %(progress)d"
@@ -10910,213 +11244,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:295
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "正在å¯åŠ¨è™šæ‹Ÿæœº"
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr "从 dom0 中移除内核/内存盘文件"
-#: nova/virt/xenapi/vmops.py:454
+#: 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:485
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "在数æ®åº“æ›´æ–°å·å¤±è´¥"
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
#, fuzzy
msgid "Auto configuring disk, attempting to resize partition..."
msgstr "正在自动é…置实例 %(instance_uuid)s çš„ç£ç›˜ï¼Œå°è¯•è°ƒæ•´åˆ†åŒºå¤§å°..."
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
#, fuzzy
msgid "Starting VM"
msgstr "é‡å¯xvp"
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, 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:653
+#: nova/virt/xenapi/vmops.py:666
#, 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:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr "实例代ç†ç‰ˆæœ¬ï¼š%s"
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr "设置VCPU æƒé‡"
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, fuzzy, python-format
msgid "Could not find VM with name %s"
msgstr "找ä¸åˆ°VDI ref"
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "快照完毕并为虚拟机 %s 上传"
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr "将 vhd 转移到新主机失败"
-#: nova/virt/xenapi/vmops.py:813
-#, fuzzy, python-format
-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"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "é‡æ–°å¯åŠ¨å®žä¾‹å¤±è´¥"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, 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:948
+#: nova/virt/xenapi/vmops.py:1002
#, fuzzy
msgid "Resize complete"
msgstr "调整实例 %s 的大å°å®Œæ¯•"
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Unable to find root VBD/VDI for VM"
msgstr "无法为VDI %s 找到VBD"
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
#, fuzzy
msgid "Destroying VDIs"
msgstr "é‡å¯xvp"
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
#, fuzzy
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr "实例 %(instance_uuid)s 使用RAW或者VHD,跳过内核和内存盘的删除"
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr "实例拥有内核或者内存盘,但ä¸æ˜¯äºŒè€…å‡æœ‰"
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr "内核/内存盘文件移除了"
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
#, fuzzy
msgid "Destroying VM"
msgstr "é‡å¯xvp"
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr "虚拟机ä¸å­˜åœ¨ï¼Œè·³è¿‡é”€æ¯..."
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr "实例已处于救æ´æ¨¡å¼ï¼š%s"
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "虚拟机ä¸å­˜åœ¨ï¼Œè·³è¿‡é”€æ¯..."
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
#, fuzzy
msgid "Automatically hard rebooting"
msgstr "自动冷é‡å¯ %d"
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "为虚拟机注入网络信æ¯åˆ°xs:|%s|"
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
#, fuzzy
msgid "Creating vifs"
msgstr "正在创建镜åƒ"
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "正在为虚拟机 %(vm_ref)s,网络 %(network_ref)s 创建VIF。"
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, 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:1530
+#: nova/virt/xenapi/vmops.py:1584
#, fuzzy
msgid "Injecting hostname to xenstore"
msgstr "为虚拟机注入hostname到xs:|%s|"
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
#, fuzzy
msgid "No suitable network for migrate"
msgstr "错误的网络格å¼"
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
#, fuzzy
msgid "Migrate Send failed"
msgstr "创建失败"
@@ -11199,7 +11543,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 "
@@ -11207,7 +11551,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"
@@ -11247,18 +11591,21 @@ msgstr "æ„外错误:%s"
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr "å¯åŠ¨nova-xvpvncproxy节点(版本 %s)"
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
#, fuzzy
msgid "status must be 'in-use'"
msgstr "状æ€å¿…é¡»å¯ç”¨"
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
#, fuzzy
msgid "status must be 'available'"
msgstr "状æ€å¿…é¡»å¯ç”¨"
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr "密钥对 '%s' å·²ç»å­˜åœ¨ã€‚"
+
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..8a8daeb0f
--- /dev/null
+++ b/nova/locale/zh_HK/LC_MESSAGES/nova.po
@@ -0,0 +1,11263 @@
+# 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-10 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:167 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
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:229
+#, 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
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:239
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:243
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:247
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:255
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:259
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:263
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:267
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:271
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:286
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:291
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:299
+#, 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
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:308
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:312
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:316
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:320
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:324
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:328
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:332
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:336
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:340
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:344
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:348
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:352
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:356
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:360
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:365
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:369
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:374
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:379
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:383
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:388
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:392
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:396
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:400
+#, 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
+#, 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:413
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:421
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:425
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:429
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:433
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:437
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:442
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:447
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:451
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:455
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:459
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:463
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:467
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:471
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:475
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:479
+#, 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:486
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:494
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:498
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:502
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:506
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:510
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:514
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:518
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:522
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:526
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:530
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:534
+#, 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
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:543
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:547
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:551
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:555
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:559
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:563
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:567
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:572
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:576
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:581
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:586
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:591
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:595
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:599
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:608
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:612
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:616
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:620
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:624
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:628
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:632
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:637
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:642
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:646
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:650
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:654
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:658
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:662
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:666
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:670
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:674
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:678
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:682
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:686
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:690
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:695
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:699
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:703
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:707
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:711
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:715
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:719
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:723
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:727
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:732
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:736
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:741
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:746
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:750
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:755
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:760
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:764
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:769
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:773
+#, 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
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:783
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:787
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:792
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:796
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:800
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:805
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:809
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:814
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:818
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:822
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:826
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:830
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:834
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:838
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:842
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:846
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:850
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:855
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:860
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:865
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:869
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:873
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:878
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:882
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:886
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:890
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:894
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:898 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:902
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:906
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:910
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:914
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:919
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:923
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:927
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:931
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:935
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:941
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:945
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:949
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:953
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:957
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:961
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:965
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:969
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:973
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:977
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:984
+#, 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:989
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:993
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:997
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1001
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1005
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1009
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1017
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1021
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1026
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1030
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1034
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1038
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1043
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1047
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1051
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1057
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1061
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1066
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1070
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1075
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1079
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1083
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1087
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1091
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1095
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1099
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1103
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1107
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1111
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1116
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1121
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1125
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1129
+#, 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:1135
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1139
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1144
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1149
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1162
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1166
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1170
+#, python-format
+msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgstr ""
+
+#: nova/exception.py:1175
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1180
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1185
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1190
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1194
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1198
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1203
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1208
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1218
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1222
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1226
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)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:146
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:174
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:339
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:378
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:439
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:568
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:597
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:734
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:800
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:934 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1093
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1097
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1102
+#, 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:1556 nova/api/ec2/cloud.py:1571
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1073
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1233
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1237
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1241
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1246
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1249
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1259
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1267
+#: 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
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1279
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1282
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1290
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1295
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1298
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1325
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1357
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1367
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1376
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1385
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1476
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1492
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1511
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1574
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1576
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1578
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1580
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1593
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1621
+#, 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
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1670
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1761
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1834
+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:603
+#, 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:568
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
+#, 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
+#, 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:696
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
+#, 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:709
+#, 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:719
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
+#, 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:738
+#, 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:741
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
+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:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
+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:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
+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:1152
+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:1156
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
+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:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
+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:1324
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
+#, 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:437
+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:348
+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:356
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:440
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:444
+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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:1103
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1239
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1245
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1255
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1298
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1322
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1372
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1389
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1462
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1698
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2029
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2038
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2084
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2220
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2325
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2333
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2405
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2518
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2540
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2544
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2794 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:2876
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2879
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2887
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2893
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2911
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2914
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2921
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2940
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3000
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3005
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3013
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3016
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3109
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3112
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3121
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3174
+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:2412
+#, 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:2466
+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:1413
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1618
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1631
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1635
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1639
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1722
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1754
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1772
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1797
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1813
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1826
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1853
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1859
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1920
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1927
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1932
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1960
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1967
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1974
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1989
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1996
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2009
+#, 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:2013
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2033
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2046
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2065
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2069
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2087
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2108
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2371
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2393
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2645
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2708
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2726
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2764
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2795
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2815
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2820
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2823
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2840
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2867
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2902
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2949
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:2999
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3008
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3023
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3053
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3070
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3093
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3129
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3149
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3163
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3316
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3344
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3399
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3401
+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:3416
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3448
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3577
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3627
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3633
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3642
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3649
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3653
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3660
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3669
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3686
+#, 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:3705
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3729
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3833
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3848
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3875
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3917
+#, 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:3955
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3971
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3987
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3993
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:3999
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4015
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4023
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4035
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4062
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4113
+#, 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:4120
+#, 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:4127
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4154
+#, 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:397
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:114
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:286
+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:1458
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1595
+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:4442
+#, 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:119
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:123
+#, 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:3466
+#: 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:3471
+#: 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:3476
+#: 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:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1721
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4041
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4541
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9084
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1593
+#, 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:179
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#, 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:390
+#, 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:154
+#, 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
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:377
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:385
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:388
+#, 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:818
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:829
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:835
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:850
+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:1381
+#, 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:1623
+#, 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:1627
+#, 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:1632
+#, 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:808
+#, 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:597
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:643
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:649
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:663
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:666
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:677
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:708
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:719
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:781
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:789
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:823
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:828
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1002
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1046
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1052
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1150
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1177
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1184
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1191
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1218
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1247
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1298
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1332
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1385
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1525
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1544
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1553
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1556
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1584
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1682
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1703
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1715
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1789
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1800
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1853
+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 "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ msgstr ""
+
diff --git a/nova/locale/zh_TW/LC_MESSAGES/nova.po b/nova/locale/zh_TW/LC_MESSAGES/nova.po
index 9caf4c16a..9997b5aa1 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-13 19:38+0000\n"
+"POT-Creation-Date: 2013-06-10 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"
@@ -83,7 +83,7 @@ msgstr ""
msgid "An unknown exception occurred."
msgstr "發生一個未知例外"
-#: nova/exception.py:133 nova/openstack/common/rpc/common.py:86
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
msgid "Exception in string format operation"
msgstr ""
@@ -167,8 +167,7 @@ msgid ""
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:463
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2765
+#: nova/exception.py:235 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "無效的Keypair"
@@ -184,8 +183,9 @@ msgstr ""
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1332
+#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1434
msgid "Invalid metadata"
msgstr ""
@@ -198,7 +198,7 @@ msgstr ""
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263 nova/api/ec2/cloud.py:625
+#: nova/exception.py:263
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
@@ -939,9 +939,9 @@ msgstr ""
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:898 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
@@ -1009,510 +1009,463 @@ msgid "Resize error: %(reason)s"
msgstr ""
#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:961
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:965
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:969
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:973
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:977
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:984
#, 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:989
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:993
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:997
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1001
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1005
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1009
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1013 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1017
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1021
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1026
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1030
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1034
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1038
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1043
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1047
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1051
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1057
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1061
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1066
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1070
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1075
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1079
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1083
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1087
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1091
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1095
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1099
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1103
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1107
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1111
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1116
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1121
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/exception.py:1129
+#: nova/exception.py:1125
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1129
#, 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:1135
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1139
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1144
#, 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:1149
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1153
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1158
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1161
+#: nova/exception.py:1162
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1165
+#: nova/exception.py:1166
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1169
+#: nova/exception.py:1170
#, python-format
msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1175
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1180
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1185
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1190
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1193
+#: nova/exception.py:1194
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/exception.py:1197
+#: nova/exception.py:1198
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/hooks.py:62
+#: nova/exception.py:1203
#, 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:1208
#, 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/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:966
+#: nova/exception.py:1214
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1218
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1222
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1226
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
-msgstr ""
-
-#: nova/quota.py:1012
-#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-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:142
+#: nova/utils.py:146
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:187 nova/openstack/common/processutils.py:219
-#, python-format
-msgid "Running cmd (SSH): %s"
-msgstr ""
-
-#: nova/utils.py:189 nova/openstack/common/processutils.py:221
-msgid "Environment not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:193 nova/openstack/common/processutils.py:225
-msgid "process_input not supported over SSH"
-msgstr ""
-
-#: nova/utils.py:212 nova/openstack/common/processutils.py:167
-#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:118
-#, python-format
-msgid "Result was %s"
-msgstr ""
-
-#: nova/utils.py:231
+#: nova/utils.py:174
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:393
+#: nova/utils.py:336
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:396
+#: nova/utils.py:339
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:435
+#: nova/utils.py:378
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:496
+#: nova/utils.py:439
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:625
+#: nova/utils.py:568
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:654
+#: nova/utils.py:597
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:810
+#: nova/utils.py:734
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:876
+#: nova/utils.py:800
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: nova/utils.py:1008 nova/virt/configdrive.py:177
+#: nova/utils.py:934 nova/virt/configdrive.py:177
#, python-format
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1160
+#: nova/utils.py:1093
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1164
+#: nova/utils.py:1097
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1169
+#: nova/utils.py:1102
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1597,130 +1550,125 @@ msgstr ""
msgid "Too many failed authentications."
msgstr ""
-#: nova/api/ec2/__init__.py:184
+#: 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:201
+#: nova/api/ec2/__init__.py:202
msgid "Signature not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:205
+#: nova/api/ec2/__init__.py:206
msgid "Access key not provided"
msgstr ""
-#: nova/api/ec2/__init__.py:240 nova/api/ec2/__init__.py:255
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
msgid "Failure communicating with keystone"
msgstr ""
-#: nova/api/ec2/__init__.py:254
+#: nova/api/ec2/__init__.py:255
#, python-format
msgid "Keystone failure: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:314
+#: nova/api/ec2/__init__.py:315
msgid "Timestamp failed validation."
msgstr ""
-#: nova/api/ec2/__init__.py:334
+#: nova/api/ec2/__init__.py:335
#, python-format
msgid "action: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:336
+#: nova/api/ec2/__init__.py:337
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
msgstr ""
-#: nova/api/ec2/__init__.py:411
+#: 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:483
+#: nova/api/ec2/__init__.py:487
#, python-format
msgid "InstanceNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:489
+#: nova/api/ec2/__init__.py:493
#, python-format
msgid "VolumeNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:495
+#: nova/api/ec2/__init__.py:499
#, python-format
msgid "SnapshotNotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:501
+#: nova/api/ec2/__init__.py:505
#, python-format
msgid "NotFound raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:504
-#, python-format
-msgid "EC2APIError raised: %s"
-msgstr ""
-
-#: nova/api/ec2/__init__.py:512
+#: nova/api/ec2/__init__.py:514
#, python-format
msgid "KeyPairExists raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:517
+#: nova/api/ec2/__init__.py:519
#, python-format
msgid "InvalidKeypair raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:522
+#: nova/api/ec2/__init__.py:524
#, python-format
msgid "InvalidParameterValue raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:526
+#: nova/api/ec2/__init__.py:528
#, python-format
msgid "InvalidPortRange raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:530
+#: nova/api/ec2/__init__.py:532
#, python-format
msgid "NotAuthorized raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:534
+#: nova/api/ec2/__init__.py:536
#, python-format
msgid "InvalidRequest raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:538
+#: nova/api/ec2/__init__.py:540
#, python-format
msgid "QuotaError raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:542
+#: nova/api/ec2/__init__.py:544
#, python-format
msgid "Invalid id: bogus (expecting \"i-...\"): %s"
msgstr ""
-#: nova/api/ec2/__init__.py:551
+#: nova/api/ec2/__init__.py:553
#, python-format
msgid "Unexpected error raised: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:552
+#: nova/api/ec2/__init__.py:554
#, python-format
msgid "Environment: %s"
msgstr ""
-#: nova/api/ec2/__init__.py:554 nova/api/metadata/handler.py:136
-#: nova/api/metadata/handler.py:183
+#: 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:62
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,69 +1678,75 @@ msgstr ""
msgid "Create snapshot of volume %s"
msgstr ""
-#: nova/api/ec2/cloud.py:417
+#: nova/api/ec2/cloud.py:416
#, python-format
msgid "Could not find key pair(s): %s"
msgstr ""
-#: nova/api/ec2/cloud.py:434
+#: nova/api/ec2/cloud.py:433
#, python-format
msgid "Create key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:441 nova/api/ec2/cloud.py:460
+#: 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:450
+#: nova/api/ec2/cloud.py:449
#, python-format
msgid "Import key %s"
msgstr ""
-#: nova/api/ec2/cloud.py:470
+#: nova/api/ec2/cloud.py:469
#, python-format
msgid "Delete key pair %s"
msgstr ""
-#: nova/api/ec2/cloud.py:612 nova/api/ec2/cloud.py:733
+#: 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:617
+#: nova/api/ec2/cloud.py:616
#, python-format
msgid "%s Not enough parameters to build a valid rule"
msgstr ""
-#: nova/api/ec2/cloud.py:655 nova/api/ec2/cloud.py:687
+#: 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:678
+#: nova/api/ec2/cloud.py:676
#, python-format
msgid "%s - This rule already exists in group"
msgstr ""
-#: nova/api/ec2/cloud.py:761
+#: nova/api/ec2/cloud.py:759
#, python-format
msgid "Get console output for instance %s"
msgstr ""
-#: nova/api/ec2/cloud.py:834
+#: nova/api/ec2/cloud.py:832
#, python-format
msgid "Create volume from snapshot %s"
msgstr ""
-#: nova/api/ec2/cloud.py:838 nova/api/openstack/compute/contrib/volumes.py:243
+#: 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:866
+#: nova/api/ec2/cloud.py:863
msgid "Delete Failed"
msgstr ""
-#: nova/api/ec2/cloud.py:879
+#: nova/api/ec2/cloud.py:876
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
msgstr ""
@@ -1801,7 +1755,7 @@ msgstr ""
msgid "Attach Failed."
msgstr ""
-#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:439
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
#, python-format
msgid "Detach volume %s"
msgstr ""
@@ -1811,7 +1765,7 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1553 nova/api/ec2/cloud.py:1568
+#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
#, python-format
msgid "attribute not supported: %s"
msgstr ""
@@ -1843,137 +1797,137 @@ msgstr ""
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1257
+#: nova/api/ec2/cloud.py:1259
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1265
+#: nova/api/ec2/cloud.py:1267
#: 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:1274
+#: nova/api/ec2/cloud.py:1276
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1277
+#: nova/api/ec2/cloud.py:1279
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1280
+#: nova/api/ec2/cloud.py:1282
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1288
+#: nova/api/ec2/cloud.py:1290
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1293
+#: nova/api/ec2/cloud.py:1295
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1296
+#: nova/api/ec2/cloud.py:1298
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1323
+#: nova/api/ec2/cloud.py:1325
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1355
+#: nova/api/ec2/cloud.py:1357
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1365
+#: nova/api/ec2/cloud.py:1367
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1374
+#: nova/api/ec2/cloud.py:1376
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1383
+#: nova/api/ec2/cloud.py:1385
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1474
+#: nova/api/ec2/cloud.py:1476
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1490
+#: nova/api/ec2/cloud.py:1492
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1509
+#: nova/api/ec2/cloud.py:1511
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1574
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1573
+#: nova/api/ec2/cloud.py:1576
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1575
+#: nova/api/ec2/cloud.py:1578
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1577
+#: nova/api/ec2/cloud.py:1580
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1590
+#: nova/api/ec2/cloud.py:1593
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1619
+#: nova/api/ec2/cloud.py:1621
#, 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:1649
+#: nova/api/ec2/cloud.py:1652
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1667
+#: nova/api/ec2/cloud.py:1670
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1691 nova/api/ec2/cloud.py:1736
+#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1758
+#: nova/api/ec2/cloud.py:1761
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1831
+#: nova/api/ec2/cloud.py:1834
msgid "Invalid CIDR"
msgstr ""
@@ -2014,46 +1968,86 @@ msgid ""
"%(remote_address)s"
msgstr ""
-#: nova/api/metadata/handler.py:174
+#: nova/api/metadata/handler.py:178
msgid "Invalid proxy request signature."
msgstr ""
-#: nova/api/metadata/handler.py:181 nova/api/metadata/handler.py:188
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
#, fuzzy, python-format
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:252
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:182 nova/api/openstack/__init__.py:292
+#: 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:187 nova/api/openstack/__init__.py:297
+#: 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 ""
@@ -2061,63 +2055,64 @@ msgid ""
"Bad upgrade or db corrupted?"
msgstr ""
-#: nova/api/openstack/common.py:153 nova/api/openstack/common.py:187
+#: 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:156 nova/api/openstack/common.py:191
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
msgid "limit param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:181
+#: nova/api/openstack/common.py:182
msgid "offset param must be an integer"
msgstr ""
-#: nova/api/openstack/common.py:195
+#: nova/api/openstack/common.py:196
msgid "offset param must be positive"
msgstr ""
-#: nova/api/openstack/common.py:230 nova/api/openstack/compute/servers.py:554
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:603
#, python-format
msgid "marker [%s] not found"
msgstr ""
-#: nova/api/openstack/common.py:270
+#: nova/api/openstack/common.py:271
#, python-format
msgid "href %s does not contain version"
msgstr ""
-#: nova/api/openstack/common.py:285
+#: nova/api/openstack/common.py:286
msgid "Image metadata limit exceeded"
msgstr ""
-#: nova/api/openstack/common.py:293
+#: nova/api/openstack/common.py:294
msgid "Image metadata key cannot be blank"
msgstr ""
-#: nova/api/openstack/common.py:296
+#: nova/api/openstack/common.py:297
msgid "Image metadata key too long"
msgstr ""
-#: nova/api/openstack/common.py:299
+#: nova/api/openstack/common.py:300
msgid "Invalid image metadata"
msgstr ""
-#: nova/api/openstack/common.py:361
+#: 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:364
+#: nova/api/openstack/common.py:366
#, python-format
-msgid "Instance is in an invalid state for '%(action)s'"
+msgid "Instance is in an invalid state for '%s'"
msgstr ""
-#: nova/api/openstack/common.py:444
+#: nova/api/openstack/common.py:446
msgid "Rejecting snapshot request, snapshots currently disabled"
msgstr ""
-#: nova/api/openstack/common.py:446
+#: nova/api/openstack/common.py:448
msgid "Instance snapshots are not permitted at this time."
msgstr ""
@@ -2127,21 +2122,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 ""
@@ -2152,6 +2151,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 ""
@@ -2171,14 +2171,14 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:346
+#: 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"
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
@@ -2221,13 +2221,13 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:932
+#: 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:46
+#: nova/api/openstack/compute/contrib/evacuate.py:47
msgid "Malformed request body"
msgstr ""
@@ -2236,20 +2236,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:920
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:929
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:941
-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:1172
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2262,12 +2265,12 @@ msgstr ""
msgid "root element selecting a list"
msgstr ""
-#: nova/api/openstack/xmlutil.py:744
+#: 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:863
+#: nova/api/openstack/xmlutil.py:862
msgid "subclasses must implement construct()!"
msgstr ""
@@ -2275,17 +2278,17 @@ msgstr ""
msgid "Initializing extension manager."
msgstr ""
-#: nova/api/openstack/compute/flavors.py:111
+#: nova/api/openstack/compute/flavors.py:107
#, python-format
msgid "Invalid is_public filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:130
+#: nova/api/openstack/compute/flavors.py:127
#, python-format
msgid "Invalid minRam filter [%s]"
msgstr ""
-#: nova/api/openstack/compute/flavors.py:137
+#: nova/api/openstack/compute/flavors.py:134
#, python-format
msgid "Invalid minDisk filter [%s]"
msgstr ""
@@ -2321,10 +2324,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,220 +2355,294 @@ msgstr ""
msgid "Metadata item was not found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:519
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:568
msgid "Invalid changes-since value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:538
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:587
msgid "Only administrators may list deleted instances"
msgstr ""
-#: nova/api/openstack/compute/servers.py:557
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:606
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
-#: nova/api/openstack/compute/servers.py:574
-#: nova/api/openstack/compute/servers.py:741
-#: nova/api/openstack/compute/servers.py:1011
-#: nova/api/openstack/compute/servers.py:1108
-#: nova/api/openstack/compute/servers.py:1281
+#: 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:623
+#: nova/api/openstack/compute/plugins/v3/servers.py:790
+#: nova/api/openstack/compute/plugins/v3/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1206
+#: nova/api/openstack/compute/plugins/v3/servers.py:1385
msgid "Instance could not be found"
msgstr ""
-#: nova/api/openstack/compute/servers.py:593
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:642
msgid "Device name cannot include spaces."
msgstr ""
-#: nova/api/openstack/compute/servers.py:610
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:659
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:613
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:662
msgid "Bad personality format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:616
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:665
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:647
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:696
msgid "Unknown argment : port"
msgstr ""
-#: nova/api/openstack/compute/servers.py:650
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:699
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:660
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:709
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:670
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:719
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
-#: nova/api/openstack/compute/servers.py:683
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:732
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
-#: nova/api/openstack/compute/servers.py:689
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:738
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
-#: nova/api/openstack/compute/servers.py:692
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:741
msgid "Bad networks format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:718
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "Userdata content cannot be decoded"
msgstr ""
-#: nova/api/openstack/compute/servers.py:723
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:728
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:777
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
-#: nova/api/openstack/compute/servers.py:757
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:806
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:806
-#: nova/api/openstack/compute/servers.py:922
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:881
+#: nova/api/openstack/compute/plugins/v3/servers.py:998
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:847
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:929
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:850
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:932
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:856
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:938
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:859
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:941
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:863
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:945
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:917
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:995
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:925
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:1001
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:999
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1086
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1003
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1090
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1029
-#: nova/api/openstack/compute/servers.py:1046
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1116
+#: nova/api/openstack/compute/plugins/v3/servers.py:1133
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1049
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1136
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1065
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1152
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1069
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1156
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1091
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1178
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1094
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1181
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1118
-msgid "Missing imageRef attribute"
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1187
+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:1191
+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:1195
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "無效的快照(snapshot)"
+
#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1216
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1225
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1154
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1258
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1167
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1271
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1171
-#: nova/api/openstack/compute/servers.py:1382
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1275
+#: nova/api/openstack/compute/plugins/v3/servers.py:1484
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1177
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1281
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1290
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1199
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1303
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1202
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1306
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1220
+#: 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:1324
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1226
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1330
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1391
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1323
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1425
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1409
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1506
#, python-format
-msgid "Removing options '%(unk_opt_str)s' from query"
+msgid "Removing options '%s' from query"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:60
@@ -2650,7 +2729,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:292
#, python-format
-msgid "Live migration of instance %(id)s to another host failed"
+msgid "Live migration of instance %s to another host failed"
msgstr ""
#: nova/api/openstack/compute/contrib/admin_actions.py:295
@@ -2670,17 +2749,17 @@ msgstr "compute.api::繼續 %s"
#: nova/api/openstack/compute/contrib/aggregates.py:89
#, python-format
-msgid "Cannot show aggregate: %(id)s"
+msgid "Cannot show aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:115
#, python-format
-msgid "Cannot update aggregate: %(id)s"
+msgid "Cannot update aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:127
#, python-format
-msgid "Cannot delete aggregate: %(id)s"
+msgid "Cannot delete aggregate: %s"
msgstr ""
#: nova/api/openstack/compute/contrib/aggregates.py:140
@@ -2733,28 +2812,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 ""
@@ -2835,27 +2919,27 @@ msgstr ""
msgid "%s must be either 'MANUAL' or 'AUTO'."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:58
+#: 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:66
+#: nova/api/openstack/compute/contrib/evacuate.py:67
msgid "host and onSharedStorage must be specified."
msgstr ""
-#: nova/api/openstack/compute/contrib/evacuate.py:77
+#: nova/api/openstack/compute/contrib/evacuate.py:78
#, python-format
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 ""
@@ -2903,7 +2987,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:437
msgid "Missing parameter dict"
msgstr ""
@@ -2951,7 +3035,7 @@ 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:378
+#: nova/cmd/manage.py:377
#, python-format
msgid "/%s should be specified as single address(es) not in cidr format"
msgstr ""
@@ -2984,29 +3068,29 @@ msgstr ""
msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:210
+#: 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:223
+#: nova/api/openstack/compute/contrib/hosts.py:224
#, python-format
msgid "Enabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:225
+#: nova/api/openstack/compute/contrib/hosts.py:226
#, python-format
msgid "Disabling host %s."
msgstr ""
-#: nova/api/openstack/compute/contrib/hosts.py:230
+#: 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:246
+#: 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:332
+#: nova/api/openstack/compute/contrib/hosts.py:333
msgid "Describe-resource is admin only functionality"
msgstr ""
@@ -3031,11 +3115,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 ""
@@ -3146,16 +3225,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 ""
@@ -3165,7 +3244,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:348
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3182,16 +3261,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:356
#, 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:440
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:444
msgid "Security group name cannot be empty"
msgstr ""
@@ -3203,12 +3282,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 ""
@@ -3226,174 +3305,236 @@ msgstr ""
msgid "Delete volume with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:356
-#: nova/api/openstack/compute/contrib/volumes.py:450
+#: 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:377
+#: 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:396
+#: 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:573
+#: nova/api/openstack/compute/contrib/volumes.py:579
#, python-format
msgid "Delete snapshot with id: %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:616
+#: nova/api/openstack/compute/contrib/volumes.py:619
#, python-format
msgid "Create snapshot from volume %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/volumes.py:620
+#: nova/api/openstack/compute/contrib/volumes.py:626
#, python-format
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:490
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:495
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:513
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1039
+#, 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:203
+#: nova/cells/messaging.py:204
#, python-format
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:357 nova/cells/messaging.py:363
+#: 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:373
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:397
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:424
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:503
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:523
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:541
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:652
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:675
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:684
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:810
+#: 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:838
-#, 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:853
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:867
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:888
+#: 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:1072
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1092
+#: 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 ""
@@ -3415,7 +3556,7 @@ msgstr ""
msgid "Launching VPN for %s"
msgstr ""
-#: nova/cmd/all.py:61 nova/cmd/all.py:67 nova/cmd/all.py:90
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
#, fuzzy, python-format
msgid "Failed to load %s"
msgstr "找ä¸åˆ°Volume %s"
@@ -3435,270 +3576,270 @@ msgstr ""
msgid "deployment to node %s done"
msgstr ""
-#: nova/cmd/baremetal_manage.py:157 nova/cmd/manage.py:1242
+#: 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:161 nova/cmd/manage.py:1246
+#: 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:163 nova/cmd/manage.py:1248
+#: 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:203 nova/cmd/manage.py:1293
+#: 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:47
+#: nova/cmd/dhcpbridge.py:46
msgid "leasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:67
+#: nova/cmd/dhcpbridge.py:66
msgid "releasing ip"
msgstr ""
-#: nova/cmd/dhcpbridge.py:122
+#: nova/cmd/dhcpbridge.py:121
#, python-format
msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
msgstr ""
-#: nova/cmd/dhcpbridge.py:132
+#: nova/cmd/dhcpbridge.py:131
msgid "Environment variable 'NETWORK_ID' must be set."
msgstr ""
-#: nova/cmd/manage.py:203
+#: 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:238
+#: 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:244
+#: nova/cmd/manage.py:243
msgid "Quota"
msgstr ""
-#: nova/cmd/manage.py:245
+#: nova/cmd/manage.py:244
msgid "Limit"
msgstr ""
-#: nova/cmd/manage.py:246
+#: nova/cmd/manage.py:245
msgid "In Use"
msgstr ""
-#: nova/cmd/manage.py:247
+#: nova/cmd/manage.py:246
msgid "Reserved"
msgstr ""
-#: nova/cmd/manage.py:287 nova/cmd/manage.py:358 nova/cmd/manage.py:682
-#: nova/cmd/manage.py:695
+#: 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:295
+#: nova/cmd/manage.py:294
msgid "network"
msgstr ""
-#: nova/cmd/manage.py:296
+#: nova/cmd/manage.py:295
msgid "IP address"
msgstr ""
-#: nova/cmd/manage.py:297
+#: nova/cmd/manage.py:296
msgid "hostname"
msgstr ""
-#: nova/cmd/manage.py:298 nova/cmd/manage.py:815
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
msgid "host"
msgstr ""
-#: nova/cmd/manage.py:310 nova/cmd/manage.py:334
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
msgid "No fixed IP found."
msgstr ""
-#: nova/cmd/manage.py:326
+#: nova/cmd/manage.py:325
#, python-format
msgid "WARNING: fixed ip %s allocated to missing instance"
msgstr ""
-#: nova/cmd/manage.py:385
+#: 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:434
+#: nova/cmd/manage.py:433
msgid "No floating IP addresses have been defined."
msgstr ""
-#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:212
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
msgid "id"
msgstr ""
-#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:213
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
msgid "IPv4"
msgstr ""
-#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:214
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
msgid "IPv6"
msgstr ""
-#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:215
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
msgid "start address"
msgstr ""
-#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:216
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
msgid "DNS1"
msgstr ""
-#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:217
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
msgid "DNS2"
msgstr ""
-#: nova/cmd/manage.py:502 nova/tests/test_nova_manage.py:218
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
msgid "VlanID"
msgstr ""
-#: nova/cmd/manage.py:503 nova/cmd/manage.py:609
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
#: nova/tests/test_nova_manage.py:219
msgid "project"
msgstr ""
-#: nova/cmd/manage.py:504 nova/tests/test_nova_manage.py:220
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
msgid "uuid"
msgstr ""
-#: nova/cmd/manage.py:511
+#: nova/cmd/manage.py:510
msgid "No networks found"
msgstr ""
-#: nova/cmd/manage.py:530
+#: nova/cmd/manage.py:529
msgid "Please specify either fixed_range or uuid"
msgstr ""
-#: nova/cmd/manage.py:535
+#: nova/cmd/manage.py:534
msgid "UUID is required to delete Quantum Networks"
msgstr ""
-#: nova/cmd/manage.py:538
+#: nova/cmd/manage.py:537
msgid "Deleting by fixed_range is not supported with the QuantumManager"
msgstr ""
-#: nova/cmd/manage.py:601
+#: nova/cmd/manage.py:600
msgid "instance"
msgstr ""
-#: nova/cmd/manage.py:602
+#: nova/cmd/manage.py:601
msgid "node"
msgstr ""
-#: nova/cmd/manage.py:603
+#: nova/cmd/manage.py:602
msgid "type"
msgstr ""
-#: nova/cmd/manage.py:604
+#: nova/cmd/manage.py:603
msgid "state"
msgstr ""
-#: nova/cmd/manage.py:605
+#: nova/cmd/manage.py:604
msgid "launched"
msgstr ""
-#: nova/cmd/manage.py:606
+#: nova/cmd/manage.py:605
msgid "image"
msgstr ""
-#: nova/cmd/manage.py:607
+#: nova/cmd/manage.py:606
msgid "kernel"
msgstr ""
-#: nova/cmd/manage.py:608
+#: nova/cmd/manage.py:607
msgid "ramdisk"
msgstr ""
-#: nova/cmd/manage.py:610
+#: nova/cmd/manage.py:609
msgid "user"
msgstr ""
-#: nova/cmd/manage.py:611 nova/cmd/manage.py:816
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
msgid "zone"
msgstr ""
-#: nova/cmd/manage.py:612
+#: nova/cmd/manage.py:611
msgid "index"
msgstr ""
-#: nova/cmd/manage.py:657
+#: nova/cmd/manage.py:656
msgid "Binary"
msgstr ""
-#: nova/cmd/manage.py:658
+#: nova/cmd/manage.py:657
msgid "Host"
msgstr ""
-#: nova/cmd/manage.py:659
+#: nova/cmd/manage.py:658
msgid "Zone"
msgstr ""
-#: nova/cmd/manage.py:660
+#: nova/cmd/manage.py:659
msgid "Status"
msgstr ""
-#: nova/cmd/manage.py:661
+#: nova/cmd/manage.py:660
msgid "State"
msgstr ""
-#: nova/cmd/manage.py:662
+#: nova/cmd/manage.py:661
msgid "Updated_At"
msgstr ""
-#: nova/cmd/manage.py:684
+#: nova/cmd/manage.py:683
#, python-format
msgid "Service %(service)s on host %(host)s enabled."
msgstr ""
-#: nova/cmd/manage.py:697
+#: nova/cmd/manage.py:696
#, python-format
msgid "Service %(service)s on host %(host)s disabled."
msgstr ""
-#: nova/cmd/manage.py:764
+#: nova/cmd/manage.py:763
msgid "An unexpected error has occurred."
msgstr ""
-#: nova/cmd/manage.py:765
+#: nova/cmd/manage.py:764
msgid "[Result]"
msgstr ""
-#: nova/cmd/manage.py:769
+#: nova/cmd/manage.py:768
msgid "HOST"
msgstr ""
-#: nova/cmd/manage.py:770
+#: nova/cmd/manage.py:769
msgid "PROJECT"
msgstr ""
-#: nova/cmd/manage.py:771
+#: nova/cmd/manage.py:770
msgid "cpu"
msgstr ""
-#: nova/cmd/manage.py:772
+#: nova/cmd/manage.py:771
msgid "mem(mb)"
msgstr ""
-#: nova/cmd/manage.py:773
+#: nova/cmd/manage.py:772
msgid "hdd"
msgstr ""
-#: nova/cmd/manage.py:855
+#: nova/cmd/manage.py:854
msgid "Must supply a positive value for max_rows"
msgstr ""
@@ -3778,244 +3919,260 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:281
+#: 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:288
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:297
+#: 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:317
+#: 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:327
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:331
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:335
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:468
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:508
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/api.py:622
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:738
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:765
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1036
+#: nova/compute/api.py:1103
#, fuzzy
msgid "instance termination disabled"
msgstr "建立虛擬介é¢å¤±æ•—"
-#: nova/compute/api.py:1172
+#: nova/compute/api.py:1239
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1178
+#: nova/compute/api.py:1245
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1188
+#: nova/compute/api.py:1255
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1232
+#: nova/compute/api.py:1298
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1256
+#: nova/compute/api.py:1322
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1306
+#: nova/compute/api.py:1372
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1323
+#: nova/compute/api.py:1389
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1396
+#: nova/compute/api.py:1462
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1633
+#: nova/compute/api.py:1698
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1984
+#: nova/compute/api.py:2029
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:1993
+#: nova/compute/api.py:2038
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2035
+#: nova/compute/api.py:2084
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2175
+#: nova/compute/api.py:2220
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2282
+#: nova/compute/api.py:2325
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2290
+#: nova/compute/api.py:2333
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2362
+#: nova/compute/api.py:2405
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2475
+#: nova/compute/api.py:2518
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2494
+#: nova/compute/api.py:2540
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2498
+#: nova/compute/api.py:2544
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2745
+#: nova/compute/api.py:2790 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2749
+#: nova/compute/api.py:2794 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:2845
+#: nova/compute/api.py:2876
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2848
+#: nova/compute/api.py:2879
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2856
+#: nova/compute/api.py:2887
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2862
+#: nova/compute/api.py:2893
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2880
+#: nova/compute/api.py:2911
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2883
+#: nova/compute/api.py:2914
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2890
+#: nova/compute/api.py:2921
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2954
+#: nova/compute/api.py:2940
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "找ä¸åˆ°Volume %s"
+
+#: nova/compute/api.py:3000
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "找ä¸åˆ°Volume %s"
-#: nova/compute/api.py:2959
+#: nova/compute/api.py:3005
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:3013
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2970
+#: nova/compute/api.py:3016
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3047 nova/compute/api.py:3121
+#: nova/compute/api.py:3093 nova/compute/api.py:3167
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3063
+#: nova/compute/api.py:3109
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3066
+#: nova/compute/api.py:3112
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3075
+#: nova/compute/api.py:3121
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3128
+#: nova/compute/api.py:3174
msgid "Security group id should be integer"
msgstr ""
-#: nova/compute/claims.py:91 nova/compute/claims.py:214
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
#, python-format
msgid "Aborting claim: %s"
msgstr ""
@@ -4049,717 +4206,717 @@ msgstr ""
#: nova/compute/claims.py:162
#, python-format
-msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:167
+#: nova/compute/claims.py:169
#, python-format
-msgid "%(type_)s limit not specified, defaulting to unlimited"
+msgid "%(type)s limit not specified, defaulting to unlimited"
msgstr ""
-#: nova/compute/claims.py:174
+#: nova/compute/claims.py:176
#, python-format
-msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
msgstr ""
-#: nova/compute/claims.py:181
+#: nova/compute/claims.py:184
#, python-format
msgid ""
-"Unable to claim resources. Free %(type_)s %(free)d %(unit)s < requested "
-"%(requested)d %(unit)s"
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
msgstr ""
-#: nova/compute/flavors.py:96
+#: nova/compute/flavors.py:90
msgid "names can only contain [a-zA-Z0-9_.- ]"
msgstr ""
-#: nova/compute/flavors.py:105
+#: nova/compute/flavors.py:99
#, python-format
-msgid "'%s' argument must be a positive integer"
+msgid "'%s' argument must be greater than 0"
msgstr ""
-#: nova/compute/flavors.py:113
-msgid "'rxtx_factor' argument must be a positive float"
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
msgstr ""
-#: nova/compute/flavors.py:121
-#, python-format
-msgid "'%s' argument must be greater than 0"
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
msgstr ""
-#: nova/compute/flavors.py:131
+#: nova/compute/flavors.py:130
msgid "is_public must be a boolean"
msgstr ""
-#: nova/compute/flavors.py:138
+#: nova/compute/flavors.py:135
#, python-format
msgid "DB error: %s"
msgstr ""
-#: nova/compute/flavors.py:148
+#: nova/compute/flavors.py:145
#, python-format
msgid "Instance type %s not found for deletion"
msgstr ""
-#: nova/compute/manager.py:206
+#: nova/compute/manager.py:205
msgid "Possibly task preempted."
msgstr ""
-#: nova/compute/manager.py:364
+#: 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:393
+#: 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:408
+#: 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:424
+#: 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:445
+#: 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:460
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:481
+#: 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:487
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:530
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:533
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:544
+#: 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:549
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:563
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:568
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:578
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:582
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:598
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:610
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:648
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:746
+#: 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:763
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:863
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:886
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:907 nova/compute/manager.py:2385
+#: nova/compute/manager.py:923 nova/compute/manager.py:2412
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:949
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:955
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:983
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:1000
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1025 nova/compute/manager.py:2439
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2466
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1038
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1043
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1049
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1078
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1129
-#, 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:1135
-#, 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:1145
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1171
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1174
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1185
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1204
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1255
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1326
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1342
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1363
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1366
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1373
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1421
+#: nova/compute/manager.py:1413
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1474 nova/compute/manager.py:2615
-#: nova/compute/manager.py:4124
+#: nova/compute/manager.py:1466 nova/compute/manager.py:2648
+#: nova/compute/manager.py:4163
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1626
+#: nova/compute/manager.py:1618
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1639
+#: nova/compute/manager.py:1631
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1643
+#: nova/compute/manager.py:1635
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1647
+#: nova/compute/manager.py:1639
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1731
+#: nova/compute/manager.py:1722
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1763
+#: nova/compute/manager.py:1754
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "無法å¸è¼‰ Volume %s"
-#: nova/compute/manager.py:1781
+#: nova/compute/manager.py:1772
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1806
+#: nova/compute/manager.py:1797
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1822
+#: nova/compute/manager.py:1813
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:1835
+#: nova/compute/manager.py:1826
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1862
+#: nova/compute/manager.py:1853
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1868
+#: nova/compute/manager.py:1859
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1920
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1936
+#: nova/compute/manager.py:1927
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1941
+#: nova/compute/manager.py:1932
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1960
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1967
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1983
+#: nova/compute/manager.py:1974
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:1989
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:2005
+#: nova/compute/manager.py:1996
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2018
+#: nova/compute/manager.py:2009
#, 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:2022
+#: nova/compute/manager.py:2013
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2042
+#: nova/compute/manager.py:2033
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2055
+#: nova/compute/manager.py:2046
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2074
+#: nova/compute/manager.py:2065
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:2078
+#: nova/compute/manager.py:2069
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2096
+#: nova/compute/manager.py:2087
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2117
+#: nova/compute/manager.py:2108
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2343
+#: nova/compute/manager.py:2331
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2365
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2349
+#: nova/compute/manager.py:2371
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2366
+#: nova/compute/manager.py:2393
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2612
+#: nova/compute/manager.py:2645
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2675
+#: nova/compute/manager.py:2708
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2693
+#: nova/compute/manager.py:2726
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2731
+#: nova/compute/manager.py:2764
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2762
+#: nova/compute/manager.py:2795
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2782
+#: nova/compute/manager.py:2815
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2787
+#: nova/compute/manager.py:2820
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2790
+#: nova/compute/manager.py:2823
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2807
+#: nova/compute/manager.py:2840
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2834
+#: nova/compute/manager.py:2867
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2869
+#: nova/compute/manager.py:2902
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2916
+#: nova/compute/manager.py:2949
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2967
+#: nova/compute/manager.py:2999
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2976
+#: nova/compute/manager.py:3008
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2991
+#: nova/compute/manager.py:3023
#, 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:3021
+#: nova/compute/manager.py:3053
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3031
+#: nova/compute/manager.py:3063
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:3038
+#: nova/compute/manager.py:3070
#, 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:3062
+#: nova/compute/manager.py:3093
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3100
+#: nova/compute/manager.py:3129
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3120
+#: nova/compute/manager.py:3149
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3134
+#: nova/compute/manager.py:3163
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3278
+#: nova/compute/manager.py:3316
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3306
+#: nova/compute/manager.py:3344
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3361
+#: nova/compute/manager.py:3399
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3363
+#: nova/compute/manager.py:3401
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:3377
+#: nova/compute/manager.py:3416
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3406
+#: nova/compute/manager.py:3448
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3525
+#: nova/compute/manager.py:3577
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3570
+#: nova/compute/manager.py:3627
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3576
+#: nova/compute/manager.py:3633
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3585
+#: nova/compute/manager.py:3642
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3592
+#: nova/compute/manager.py:3649
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3596
+#: nova/compute/manager.py:3653
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3603
+#: nova/compute/manager.py:3660
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3612
+#: nova/compute/manager.py:3669
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3629
+#: nova/compute/manager.py:3686
#, 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:3648
+#: nova/compute/manager.py:3705
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3672
+#: nova/compute/manager.py:3729
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3789
+#: nova/compute/manager.py:3833
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3806
+#: nova/compute/manager.py:3848
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3833
+#: nova/compute/manager.py:3875
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3838 nova/compute/manager.py:3888
+#: nova/compute/manager.py:3880 nova/compute/manager.py:3930
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3875
+#: nova/compute/manager.py:3917
#, 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:3913
+#: nova/compute/manager.py:3955
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3925 nova/compute/manager.py:3934
-#: nova/compute/manager.py:3964
+#: nova/compute/manager.py:3967 nova/compute/manager.py:3976
+#: nova/compute/manager.py:4006
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3929
+#: nova/compute/manager.py:3971
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3945
+#: nova/compute/manager.py:3987
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3993
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3957
+#: nova/compute/manager.py:3999
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3973
+#: nova/compute/manager.py:4015
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3981
+#: nova/compute/manager.py:4023
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:4001
+#: nova/compute/manager.py:4035
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4028
+#: nova/compute/manager.py:4062
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4038 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4072 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4079
+#: nova/compute/manager.py:4113
#, 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:4086
+#: nova/compute/manager.py:4120
#, 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:4093
+#: nova/compute/manager.py:4127
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
+#: nova/compute/manager.py:4154
+#, 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 "
@@ -4869,18 +5026,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:397
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:114
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:286
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4958,54 +5115,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:1458
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1595
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:2836
+#: 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:4344
+#: nova/db/sqlalchemy/api.py:4442
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5022,56 +5195,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:53
+#: 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:59
+#: 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:161
+#: 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:195
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:201
+#: 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:210
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:231
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:234
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:255
+#: 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 ""
@@ -5107,32 +5284,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 ""
@@ -5151,15 +5333,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 ""
@@ -5273,103 +5459,103 @@ msgstr ""
msgid "This shouldn't be getting called except during testing."
msgstr ""
-#: nova/network/linux_net.py:220
+#: nova/network/linux_net.py:219
#, python-format
msgid "Attempted to remove chain %s which does not exist"
msgstr ""
-#: nova/network/linux_net.py:255
+#: nova/network/linux_net.py:254
#, python-format
msgid "Unknown chain: %r"
msgstr ""
-#: nova/network/linux_net.py:280
+#: 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:425
+#: nova/network/linux_net.py:424
msgid "IPTablesManager.apply completed with success"
msgstr ""
-#: nova/network/linux_net.py:681
+#: nova/network/linux_net.py:680
#, python-format
msgid "arping error for ip %s"
msgstr ""
-#: nova/network/linux_net.py:731
+#: 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:776
+#: nova/network/linux_net.py:778
#, python-format
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:975
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1020
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1102
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1280
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1283
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1401
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1447
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1459
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1495
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1732
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1740
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5464,38 +5650,38 @@ msgid ""
"network_size flag."
msgstr ""
-#: nova/network/manager.py:1104
+#: nova/network/manager.py:1105
msgid "cidr already in use"
msgstr ""
-#: nova/network/manager.py:1107
+#: nova/network/manager.py:1108
#, python-format
msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
msgstr ""
-#: nova/network/manager.py:1118
+#: nova/network/manager.py:1119
#, python-format
msgid ""
"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
"(%(smaller)s)"
msgstr ""
-#: nova/network/manager.py:1175
+#: nova/network/manager.py:1176
msgid "Network already exists!"
msgstr ""
-#: nova/network/manager.py:1194
+#: nova/network/manager.py:1195
#, python-format
msgid "Network must be disassociated from project %s before delete"
msgstr ""
-#: nova/network/manager.py:1794
+#: 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:1801
+#: nova/network/manager.py:1802
#, python-format
msgid ""
"The network range is not big enough to fit %(num_networks)s networks. "
@@ -5531,79 +5717,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:375
+#: 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 ""
@@ -5613,65 +5798,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:104
+#: 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:107
-#: nova/network/security_group/quantum_driver.py:153
-#: nova/network/security_group/quantum_driver.py:242
+#: 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:127
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:137
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:171
+#: 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:175
-#: nova/network/security_group/quantum_driver.py:340
-#: nova/network/security_group/quantum_driver.py:346
-#: nova/network/security_group/quantum_driver.py:373
-#: nova/network/security_group/quantum_driver.py:388
-#: nova/network/security_group/quantum_driver.py:394
-#: nova/network/security_group/quantum_driver.py:423
+#: 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:228
+#: 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:239
+#: 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:356
+#: 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:366
-#: nova/network/security_group/quantum_driver.py:416
+#: 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:426
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5683,32 +5873,51 @@ 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"
msgstr ""
-#: nova/openstack/common/lockutils.py:98
+#: nova/openstack/common/lockutils.py:102
#, python-format
msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: nova/openstack/common/lockutils.py:184
+#: nova/openstack/common/lockutils.py:188
#, python-format
msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
msgstr ""
-#: nova/openstack/common/lockutils.py:195
+#: 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:222
+#: 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:230
+#: nova/openstack/common/lockutils.py:234
#, python-format
msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgstr ""
@@ -5718,17 +5927,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 ""
@@ -5801,21 +6010,101 @@ msgstr ""
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/db/sqlalchemy/session.py:461
+#: 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: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 ""
@@ -5944,64 +6233,69 @@ msgstr ""
msgid "Sending %(event_type)s on %(topic)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:74
+#: nova/openstack/common/rpc/common.py:75
#, fuzzy
msgid "An unknown RPC related exception occurred."
msgstr "發生一個未知例外"
-#: nova/openstack/common/rpc/common.py:104
+#: 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:121
+#: 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:137
#: 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:143
+#: 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:147
+#: nova/openstack/common/rpc/common.py:148
msgid "Invalid reuse of an RPC connection."
msgstr ""
-#: nova/openstack/common/rpc/common.py:151
+#: 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:156
+#: 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:280
+#: 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:302
+#: 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 ""
@@ -6030,44 +6324,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 ""
@@ -6310,7 +6604,7 @@ msgstr ""
msgid "Driver must implement select_hosts"
msgstr ""
-#: nova/scheduler/driver.py:335
+#: nova/scheduler/driver.py:339
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
@@ -6319,36 +6613,48 @@ msgstr ""
#: nova/scheduler/filter_scheduler.py:73
#, python-format
-msgid "Attempting to build %(num_instances)d instance(s)"
+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:227
+#: 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:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:244
+#: 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:276
+#: 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:344
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:357
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
-msgid "Choosing host %(chosen_host)s"
+msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:391
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6420,10 +6726,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
@@ -6431,6 +6744,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"
@@ -6466,14 +6784,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 ""
@@ -6543,46 +6861,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 ""
@@ -6635,79 +6953,42 @@ msgstr ""
msgid "Attempted to instantiate singleton"
msgstr ""
-#: nova/tests/fake_utils.py:72
+#: nova/tests/fake_processutils.py:71
#, python-format
msgid "Faking execution of cmd (subprocess): %s"
msgstr ""
-#: nova/tests/fake_utils.py:80
+#: nova/tests/fake_processutils.py:79
#, python-format
msgid "Faked command matched %s"
msgstr ""
-#: nova/tests/fake_utils.py:96
+#: nova/tests/fake_processutils.py:95
#, python-format
msgid "Faked command raised an exception %s"
msgstr ""
-#: nova/tests/fake_utils.py:101
+#: 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:187
+#: nova/tests/fake_volume.py:188
msgid "status must be available"
msgstr ""
-#: nova/tests/fake_volume.py:191 nova/volume/cinder.py:228
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
msgid "already attached"
msgstr ""
-#: nova/tests/fake_volume.py:195 nova/volume/cinder.py:232
+#: 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:200 nova/volume/cinder.py:238
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
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 ""
@@ -6720,61 +7001,71 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3466
+#: 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:3471
+#: 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:3476
+#: 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:3725
+#: nova/tests/compute/test_compute.py:1097
+#: nova/tests/compute/test_compute.py:1115
+#: nova/tests/compute/test_compute.py:1166
+#: nova/tests/compute/test_compute.py:1193
+#: nova/tests/compute/test_compute.py:1239
+#: nova/tests/compute/test_compute.py:4030
#, 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
+#: nova/tests/compute/test_compute.py:1103
+#: nova/tests/compute/test_compute.py:1138
+#: nova/tests/compute/test_compute.py:1181
+#: nova/tests/compute/test_compute.py:1211
#, python-format
msgid "After terminating instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:1723
+#: nova/tests/compute/test_compute.py:1721
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3736
+#: nova/tests/compute/test_compute.py:4041
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4238
+#: nova/tests/compute/test_compute.py:4541
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8725
+#: nova/tests/compute/test_compute.py:9084
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1593
+#, 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"
@@ -6784,22 +7075,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"
@@ -6861,35 +7152,72 @@ 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
-#, python-format
-msgid "Unable to load the virtualization driver: %s"
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
msgstr ""
-#: nova/virt/fake.py:210
+#: nova/virt/fake.py:212
#, python-format
msgid "Key '%(key)s' not in instances '%(inst)s'"
msgstr ""
@@ -7014,19 +7342,19 @@ msgstr ""
"標準輸出: %(stdout)r\n"
"標準錯誤輸出: %(stderr)r"
-#: nova/virt/baremetal/ipmi.py:161
+#: nova/virt/baremetal/ipmi.py:157
msgid "IPMI power on failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:183
+#: nova/virt/baremetal/ipmi.py:179
msgid "IPMI power off failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:193
+#: nova/virt/baremetal/ipmi.py:189
msgid "IPMI set next bootdev failed"
msgstr ""
-#: nova/virt/baremetal/ipmi.py:198 nova/virt/baremetal/tilera_pdu.py:153
+#: 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 ""
@@ -7194,15 +7522,15 @@ msgstr ""
msgid "no pif for vif_uuid=%s"
msgstr ""
-#: nova/virt/baremetal/virtual_power_driver.py:112
+#: 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:116
+#: 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:122
+#: nova/virt/baremetal/virtual_power_driver.py:121
msgid "virtual_power_host_pass/key not set. Can not Start"
msgstr ""
@@ -7260,97 +7588,97 @@ msgstr ""
msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:139
+#: nova/virt/disk/api.py:140
#, python-format
msgid "Cannot resize filesystem %s to a smaller size."
msgstr ""
-#: nova/virt/disk/api.py:150
+#: 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:160
+#: 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:227
+#: nova/virt/disk/api.py:228
msgid "image already mounted"
msgstr ""
-#: nova/virt/disk/api.py:283
+#: 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=ha-ha-not-telling-you files=%(files)s "
-"partition=%(partition)s use_cow=%(use_cow)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
msgstr ""
-#: nova/virt/disk/api.py:300
+#: nova/virt/disk/api.py:302
#, python-format
msgid "Ignoring error injecting data into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:319
+#: 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:336
+#: nova/virt/disk/api.py:338
#, python-format
msgid "Failed to teardown ntainer filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:349
+#: nova/virt/disk/api.py:351
#, python-format
msgid "Failed to umount container filesystem: %s"
msgstr ""
-#: nova/virt/disk/api.py:374
+#: nova/virt/disk/api.py:376
#, python-format
msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
msgstr ""
-#: nova/virt/disk/api.py:386
+#: 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:395
+#: nova/virt/disk/api.py:397
#, python-format
msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
msgstr ""
-#: nova/virt/disk/api.py:436
+#: nova/virt/disk/api.py:438
#, python-format
msgid "Inject key fs=%(fs)s key=%(key)s"
msgstr ""
-#: nova/virt/disk/api.py:465
+#: 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=ha-ha-not-telling-you"
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
msgstr ""
-#: nova/virt/disk/api.py:536
+#: nova/virt/disk/api.py:535
msgid "Not implemented on Windows"
msgstr ""
-#: nova/virt/disk/api.py:565
+#: nova/virt/disk/api.py:564
#, python-format
msgid "User %(username)s not found in password file."
msgstr ""
-#: nova/virt/disk/api.py:581
+#: nova/virt/disk/api.py:580
#, python-format
msgid "User %(username)s not found in shadow file."
msgstr ""
@@ -7684,7 +8012,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3835
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7698,24 +8026,24 @@ msgstr ""
msgid "Host IP address is: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:48
+#: nova/virt/hyperv/imagecache.py:49
#, python-format
msgid "The image is not a valid VHD: %s"
msgstr ""
-#: nova/virt/hyperv/imagecache.py:68
+#: 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:83
+#: 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:86
+#: nova/virt/hyperv/imagecache.py:87
#, python-format
msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
msgstr ""
@@ -7856,50 +8184,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 ""
@@ -8036,12 +8364,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1876
+#: 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:1883
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8200,7 +8528,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:902
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8234,236 +8562,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:727
+#: 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:742
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:747
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:757
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:767
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:786
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:802
+#: 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:822
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:828
+#: 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:856
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:865
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:908
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:915
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:920
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1042
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1066
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1086
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1090
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1179
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1182
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1211
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1223
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1296
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1300
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1335
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1343
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1391
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1537
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1544 nova/virt/powervm/operator.py:221
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1560
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1597 nova/virt/libvirt/driver.py:1623
+#: 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:1612
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "使用者並沒有管ç†è€…權力"
-#: nova/virt/libvirt/driver.py:1681
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1685
+#: 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:1690 nova/virt/libvirt/driver.py:1695
+#: 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:1766
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1867
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1916
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1926
+#: 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:1983
+#: 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:1989
+#: 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:1993
+#: 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:1997
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2013
+#: 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:2337
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8471,73 +8799,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2352
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2369
+#: 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:2547 nova/virt/libvirt/driver.py:2551
+#: 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:2560
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2567
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2572
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2589
+#: 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:2599
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2651
+#: 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:2657
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2659
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2723
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2807
+#: 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:2820
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8545,50 +8873,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2838
+#: 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:2843
+#: 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:2920
+#: 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:3002
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3010
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3047
+#: 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:3072
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3084
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8598,67 +8926,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3101
+#: 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:3149
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3221
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3314
+#: 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:3426
+#: 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:3443
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3448
+#: 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:3489
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3558
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3619
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3625
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3687
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3808
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8691,153 +9019,153 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:298
+#: 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:383
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:140
+#: nova/virt/libvirt/imagecache.py:139
#, python-format
msgid "Error reading image info file %(filename)s: %(error)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:180
+#: nova/virt/libvirt/imagecache.py:178
#, python-format
msgid "Reading image info file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:202
+#: nova/virt/libvirt/imagecache.py:200
#, python-format
msgid "Writing stored info to %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:332
+#: nova/virt/libvirt/imagecache.py:329
#, python-format
msgid "%s is a valid instance name"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:335
+#: nova/virt/libvirt/imagecache.py:332
#, python-format
msgid "%s has a disk file"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:337
+#: nova/virt/libvirt/imagecache.py:334
#, python-format
msgid "Instance %(instance)s is backed by %(backing)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:350
+#: 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:426
+#: 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:436
+#: 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:445
+#: nova/virt/libvirt/imagecache.py:441
#, python-format
msgid "%(id)s (%(base_file)s): generating checksum"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:460
+#: nova/virt/libvirt/imagecache.py:456
#, python-format
msgid "Cannot remove %(base_file)s, it does not exist"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:472
+#: nova/virt/libvirt/imagecache.py:468
#, python-format
msgid "Base file too young to remove: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:475
+#: nova/virt/libvirt/imagecache.py:471
#, python-format
msgid "Removing base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:482
+#: 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:493
+#: nova/virt/libvirt/imagecache.py:489
#, python-format
msgid "image %(id)s at (%(base_file)s): checking"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:517
+#: 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:529
+#: 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:541
+#: 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:548
+#: 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:572
+#: nova/virt/libvirt/imagecache.py:568
#, python-format
msgid "Skipping verification, no base directory at %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:576
+#: nova/virt/libvirt/imagecache.py:572
msgid "Verify base images"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:583
+#: nova/virt/libvirt/imagecache.py:579
#, python-format
msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:601
+#: nova/virt/libvirt/imagecache.py:597
#, python-format
msgid "Unknown base file: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:606
+#: nova/virt/libvirt/imagecache.py:602
#, python-format
msgid "Active base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:609
+#: nova/virt/libvirt/imagecache.py:605
#, python-format
msgid "Corrupt base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:613
+#: nova/virt/libvirt/imagecache.py:609
#, python-format
msgid "Removable base files: %s"
msgstr ""
-#: nova/virt/libvirt/imagecache.py:621
+#: nova/virt/libvirt/imagecache.py:617
msgid "Verification complete"
msgstr ""
@@ -8856,7 +9184,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. "
@@ -8864,17 +9192,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 ""
@@ -8950,12 +9278,12 @@ msgid ""
"attribute"
msgstr ""
-#: nova/virt/libvirt/volume.py:239
+#: nova/virt/libvirt/volume.py:238
#, python-format
msgid "iSCSI device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:242
+#: nova/virt/libvirt/volume.py:241
#, python-format
msgid ""
"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
@@ -8967,70 +9295,70 @@ msgstr ""
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:490 nova/virt/libvirt/volume.py:611
+#: 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:546
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:548
+#: 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:562
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:690
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:699
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:709
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:712
+#: 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:728
+#: 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:735
+#: nova/virt/libvirt/volume.py:752
#, python-format
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:801
+#: nova/virt/libvirt/volume.py:818
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:812
+#: nova/virt/libvirt/volume.py:829
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:835
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:833
+#: nova/virt/libvirt/volume.py:850
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9054,84 +9382,84 @@ 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:675
+#: 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:692
+#: 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:68
+#: nova/virt/powervm/common.py:67
msgid "Connection error connecting PowerVM manager"
msgstr ""
-#: nova/virt/powervm/common.py:101
+#: nova/virt/powervm/common.py:100
#, python-format
msgid "Running cmd (SSH-as-root): %s"
msgstr ""
-#: nova/virt/powervm/common.py:150
+#: nova/virt/powervm/common.py:149
msgid "File transfer to PowerVM manager failed"
msgstr ""
-#: nova/virt/powervm/common.py:169
+#: nova/virt/powervm/common.py:168
#, python-format
msgid "ftp GET %(remote_path)s to: %(local_path)s"
msgstr ""
-#: nova/virt/powervm/common.py:175
+#: nova/virt/powervm/common.py:174
#, fuzzy
msgid "File transfer from PowerVM manager failed"
msgstr "連接到glance失敗"
@@ -9155,7 +9483,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 ""
@@ -9224,74 +9552,74 @@ msgid ""
"Continuing without storing"
msgstr ""
-#: nova/virt/powervm/operator.py:99
+#: nova/virt/powervm/operator.py:98
#, python-format
msgid "LPAR instance '%s' not found"
msgstr ""
-#: nova/virt/powervm/operator.py:187
+#: nova/virt/powervm/operator.py:186
#, fuzzy, python-format
msgid "PowerVM image creation failed: %s"
msgstr "建立虛擬介é¢å¤±æ•—"
-#: nova/virt/powervm/operator.py:201
+#: nova/virt/powervm/operator.py:200
#, python-format
msgid "Creating LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:203
+#: nova/virt/powervm/operator.py:202
#, fuzzy, python-format
msgid "LPAR instance '%s' creation failed"
msgstr "建立虛擬介é¢å¤±æ•—"
-#: nova/virt/powervm/operator.py:209
+#: nova/virt/powervm/operator.py:208
#, python-format
msgid "Activating the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:226
+#: nova/virt/powervm/operator.py:225
#, python-format
msgid "Instance '%s' failed to boot"
msgstr ""
-#: nova/virt/powervm/operator.py:238
+#: nova/virt/powervm/operator.py:237
msgid "Error while attempting to clean up failed instance launch."
msgstr ""
-#: nova/virt/powervm/operator.py:242
+#: nova/virt/powervm/operator.py:241
#, python-format
msgid "Instance spawned in %s seconds"
msgstr ""
-#: nova/virt/powervm/operator.py:253
+#: 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:272
+#: nova/virt/powervm/operator.py:271
#, python-format
msgid "Stopping instance %s for snapshot."
msgstr ""
-#: nova/virt/powervm/operator.py:295
+#: nova/virt/powervm/operator.py:294
#, python-format
msgid "Shutting down the instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:300
+#: nova/virt/powervm/operator.py:299
#, python-format
msgid "Deleting the LPAR instance '%s'"
msgstr ""
-#: nova/virt/powervm/operator.py:312
+#: nova/virt/powervm/operator.py:311
msgid "PowerVM instance cleanup failed"
msgstr ""
-#: nova/virt/powervm/operator.py:334 nova/virt/powervm/operator.py:390
+#: 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:345 nova/virt/powervm/operator.py:396
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
msgid "Insufficient available CPU on PowerVM"
msgstr ""
@@ -9307,27 +9635,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 ""
@@ -9393,18 +9721,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 ""
@@ -9737,54 +10065,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:1327
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1381
#, 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 ""
@@ -9907,107 +10235,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:1569
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1623
#, 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:1573
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1627
#, 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:1578
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1632
#, 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 ""
@@ -10023,24 +10355,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:354
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:570
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:630
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:670
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:754 nova/virt/xenapi/driver.py:768
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10177,374 +10509,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:272
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:284
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:289 nova/virt/xenapi/vm_utils.py:304
+#: 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:293
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:308
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:346
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:363
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:366
+#: 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:371
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:376
+#: 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:387
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:409
+#: 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:412
+#: 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:438
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:465
+#: 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:479
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:504
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:590
+#: 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:635
+#: 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:648
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:698
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:951
+#: 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:1007
+#: 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:1041
+#: 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:1053
+#: 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:1066
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1100
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1111
+#: 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:1186
+#: 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:1201
+#: 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:1205
-#, 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:1227
+#: 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:1240
+#: 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:1249
+#: 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:1268
+#: 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:1282
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1291
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1332
+#: 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:1363
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1381
+#: 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:1387
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1418
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1521
+#: 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:1548
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1576
+#: 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:1594
+#: 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:1607
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1615
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1620
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1623
+#: 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:1627
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: 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:1632
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1635
+#: 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:1638
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1660
+#: 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:1676
+#: 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:1730
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1790
+#: 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:1877
+#: 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:1887
+#: 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:1922
+#: 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:1942
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1955
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1958
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: 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:1963
+#: 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:1968
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1976
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2003
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2011
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: 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 "
@@ -10552,55 +10877,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2032
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2038
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2063
+#: 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:2076
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2130
+#: 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:2163
+#: 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:2215
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2224
+#: 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:2336
+#: 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:795
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:808
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10610,197 +10942,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:295
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:381
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:454
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:485
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:584
+#: nova/virt/xenapi/vmops.py:597
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:630
+#: nova/virt/xenapi/vmops.py:643
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:649
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:650
+#: nova/virt/xenapi/vmops.py:663
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:653
+#: nova/virt/xenapi/vmops.py:666
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:664
+#: nova/virt/xenapi/vmops.py:677
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:695
+#: nova/virt/xenapi/vmops.py:708
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:706
+#: nova/virt/xenapi/vmops.py:719
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:764
+#: nova/virt/xenapi/vmops.py:777
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:768
+#: nova/virt/xenapi/vmops.py:781
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:776
+#: nova/virt/xenapi/vmops.py:789
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:813
-#, python-format
-msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#: nova/virt/xenapi/vmops.py:815
+msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:819 nova/virt/xenapi/vmops.py:869
+#: nova/virt/xenapi/vmops.py:819
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:898
+#: nova/virt/xenapi/vmops.py:823
+#, fuzzy
+msgid "Unable to terminate instance."
+msgstr "無法掛載Volume 到虛擬機器 %s"
+
+#: nova/virt/xenapi/vmops.py:828
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:943
+#: nova/virt/xenapi/vmops.py:881
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:997
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:948
+#: nova/virt/xenapi/vmops.py:1002
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:992
+#: nova/virt/xenapi/vmops.py:1046
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:998
+#: nova/virt/xenapi/vmops.py:1052
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1092
+#: nova/virt/xenapi/vmops.py:1146
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1096
+#: nova/virt/xenapi/vmops.py:1150
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1123
+#: nova/virt/xenapi/vmops.py:1177
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1130
+#: nova/virt/xenapi/vmops.py:1184
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1137
+#: nova/virt/xenapi/vmops.py:1191
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1164
+#: nova/virt/xenapi/vmops.py:1218
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1193
+#: nova/virt/xenapi/vmops.py:1247
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1244
+#: nova/virt/xenapi/vmops.py:1298
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1278
+#: nova/virt/xenapi/vmops.py:1332
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1331
+#: nova/virt/xenapi/vmops.py:1385
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1471
+#: nova/virt/xenapi/vmops.py:1525
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1490
+#: nova/virt/xenapi/vmops.py:1544
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1499
+#: nova/virt/xenapi/vmops.py:1553
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1502
+#: nova/virt/xenapi/vmops.py:1556
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1530
+#: nova/virt/xenapi/vmops.py:1584
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1628
+#: nova/virt/xenapi/vmops.py:1682
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1649
+#: nova/virt/xenapi/vmops.py:1703
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1661
+#: nova/virt/xenapi/vmops.py:1715
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1735
+#: nova/virt/xenapi/vmops.py:1789
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1746
+#: nova/virt/xenapi/vmops.py:1800
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1799
+#: nova/virt/xenapi/vmops.py:1853
msgid "Migrate Send failed"
msgstr ""
@@ -10880,7 +11222,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 "
@@ -10888,7 +11230,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 ""
@@ -10928,16 +11270,22 @@ msgstr ""
msgid "Starting nova-xvpvncproxy node (version %s)"
msgstr ""
-#: nova/volume/cinder.py:94
+#: nova/volume/cinder.py:98
#, python-format
msgid "Cinderclient connection created using URL: %s"
msgstr ""
-#: nova/volume/cinder.py:219
+#: nova/volume/cinder.py:229
msgid "status must be 'in-use'"
msgstr ""
-#: nova/volume/cinder.py:225
+#: nova/volume/cinder.py:235
msgid "status must be 'available'"
msgstr ""
+#~ msgid "Key pair %(key_name)s already exists."
+#~ msgstr ""
+
+#~ msgid "Key pair '%s' already exists."
+#~ 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..cb5f6551f 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']
@@ -306,7 +324,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
diff --git a/nova/network/security_group/security_group_base.py b/nova/network/security_group/security_group_base.py
index 3babf4b00..484927c84 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()
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..1ba0f03b7
--- /dev/null
+++ b/nova/objects/base.py
@@ -0,0 +1,377 @@
+# 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,
+ }
+
+ 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 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..dbf9786df
--- /dev/null
+++ b/nova/objects/instance.py
@@ -0,0 +1,238 @@
+# 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
+ 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]
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/jsonutils.py b/nova/openstack/common/jsonutils.py
index 0aab537a7..11af66daf 100644
--- a/nova/openstack/common/jsonutils.py
+++ b/nova/openstack/common/jsonutils.py
@@ -41,6 +41,8 @@ import json
import types
import xmlrpclib
+import six
+
from nova.openstack.common import timeutils
@@ -93,7 +95,7 @@ def to_primitive(value, convert_instances=False, convert_datetime=True,
# value of itertools.count doesn't get caught by nasty_type_tests
# and results in infinite loop when list(value) is called.
if type(value) == itertools.count:
- return unicode(value)
+ return six.text_type(value)
# FIXME(vish): Workaround for LP bug 852095. Without this workaround,
# tests that raise an exception in a mocked method that
@@ -137,12 +139,12 @@ def to_primitive(value, convert_instances=False, convert_datetime=True,
return recursive(value.__dict__, level=level + 1)
else:
if any(test(value) for test in _nasty_type_tests):
- return unicode(value)
+ return six.text_type(value)
return value
except TypeError:
# Class objects are tricky since they may define something like
# __iter__ defined but it isn't callable as list().
- return unicode(value)
+ return six.text_type(value)
def dumps(value, default=to_primitive, **kwargs):
diff --git a/nova/openstack/common/log.py b/nova/openstack/common/log.py
index e11f666fc..cdaba43ab 100644
--- a/nova/openstack/common/log.py
+++ b/nova/openstack/common/log.py
@@ -43,9 +43,9 @@ import traceback
from oslo.config import cfg
from nova.openstack.common.gettextutils import _
+from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import local
-from nova.openstack.common import notifier
_DEFAULT_LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
@@ -322,17 +322,6 @@ class JSONFormatter(logging.Formatter):
return jsonutils.dumps(message)
-class PublishErrorsHandler(logging.Handler):
- def emit(self, record):
- if ('nova.openstack.common.notifier.log_notifier' in
- CONF.notification_driver):
- return
- notifier.api.notify(None, 'error.publisher',
- 'error_notification',
- notifier.api.ERROR,
- dict(error=record.msg))
-
-
def _create_logging_excepthook(product_name):
def logging_excepthook(type, value, tb):
extra = {}
@@ -428,7 +417,10 @@ def _setup_logging_from_conf():
log_root.addHandler(streamlog)
if CONF.publish_errors:
- log_root.addHandler(PublishErrorsHandler(logging.ERROR))
+ handler = importutils.import_object(
+ "nova.openstack.common.log_handler.PublishErrorsHandler",
+ logging.ERROR)
+ log_root.addHandler(handler)
datefmt = CONF.log_date_format
for handler in log_root.handlers:
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 6474db4ad..87d89b490 100644
--- a/nova/openstack/common/processutils.py
+++ b/nova/openstack/common/processutils.py
@@ -123,7 +123,7 @@ def execute(*cmd, **kwargs):
elif isinstance(check_exit_code, int):
check_exit_code = [check_exit_code]
- if len(kwargs):
+ if kwargs:
raise UnknownArgumentError(_('Got unknown keyword args '
'to utils.execute: %r') % kwargs)
@@ -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/common.py b/nova/openstack/common/rpc/common.py
index 4b2e5a71f..fcd954dd5 100644
--- a/nova/openstack/common/rpc/common.py
+++ b/nova/openstack/common/rpc/common.py
@@ -158,6 +158,10 @@ class UnsupportedRpcEnvelopeVersion(RPCException):
"not supported by this endpoint.")
+class RpcVersionCapError(RPCException):
+ message = _("Specified RPC version cap, %(version_cap)s, is too low")
+
+
class Connection(object):
"""A connection, returned by rpc.create_connection().
diff --git a/nova/openstack/common/rpc/dispatcher.py b/nova/openstack/common/rpc/dispatcher.py
index 3c84671df..81d16bcee 100644
--- a/nova/openstack/common/rpc/dispatcher.py
+++ b/nova/openstack/common/rpc/dispatcher.py
@@ -84,6 +84,7 @@ minimum version that supports the new parameter should be specified.
"""
from nova.openstack.common.rpc import common as rpc_common
+from nova.openstack.common.rpc import serializer as rpc_serializer
class RpcDispatcher(object):
@@ -93,16 +94,38 @@ class RpcDispatcher(object):
contains a list of underlying managers that have an API_VERSION attribute.
"""
- def __init__(self, callbacks):
+ def __init__(self, callbacks, serializer=None):
"""Initialize the rpc dispatcher.
:param callbacks: List of proxy objects that are an instance
of a class with rpc methods exposed. Each proxy
object should have an RPC_API_VERSION attribute.
+ :param serializer: The Serializer object that will be used to
+ deserialize arguments before the method call and
+ to serialize the result after it returns.
"""
self.callbacks = callbacks
+ if serializer is None:
+ serializer = rpc_serializer.NoOpSerializer()
+ self.serializer = serializer
super(RpcDispatcher, self).__init__()
+ def _deserialize_args(self, context, kwargs):
+ """Helper method called to deserialize args before dispatch.
+
+ This calls our serializer on each argument, returning a new set of
+ args that have been deserialized.
+
+ :param context: The request context
+ :param kwargs: The arguments to be deserialized
+ :returns: A new set of deserialized args
+ """
+ new_kwargs = dict()
+ for argname, arg in kwargs.iteritems():
+ new_kwargs[argname] = self.serializer.deserialize_entity(context,
+ arg)
+ return new_kwargs
+
def dispatch(self, ctxt, version, method, namespace, **kwargs):
"""Dispatch a message based on a requested version.
@@ -145,7 +168,9 @@ class RpcDispatcher(object):
if not hasattr(proxyobj, method):
continue
if is_compatible:
- return getattr(proxyobj, method)(ctxt, **kwargs)
+ kwargs = self._deserialize_args(ctxt, kwargs)
+ result = getattr(proxyobj, method)(ctxt, **kwargs)
+ return self.serializer.serialize_entity(ctxt, result)
if had_compatible:
raise AttributeError("No such RPC function '%s'" % method)
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/openstack/common/rpc/proxy.py b/nova/openstack/common/rpc/proxy.py
index daebcbfa7..dcdfc0864 100644
--- a/nova/openstack/common/rpc/proxy.py
+++ b/nova/openstack/common/rpc/proxy.py
@@ -1,6 +1,6 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
-# Copyright 2012 Red Hat, Inc.
+# Copyright 2012-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
@@ -23,6 +23,8 @@ For more information about rpc API version numbers, see:
from nova.openstack.common import rpc
+from nova.openstack.common.rpc import common as rpc_common
+from nova.openstack.common.rpc import serializer as rpc_serializer
class RpcProxy(object):
@@ -34,16 +36,28 @@ class RpcProxy(object):
rpc API.
"""
- def __init__(self, topic, default_version):
+ # The default namespace, which can be overriden in a subclass.
+ RPC_API_NAMESPACE = None
+
+ def __init__(self, topic, default_version, version_cap=None,
+ serializer=None):
"""Initialize an RpcProxy.
:param topic: The topic to use for all messages.
:param default_version: The default API version to request in all
outgoing messages. This can be overridden on a per-message
basis.
+ :param version_cap: Optionally cap the maximum version used for sent
+ messages.
+ :param serializer: Optionaly (de-)serialize entities with a
+ provided helper.
"""
self.topic = topic
self.default_version = default_version
+ self.version_cap = version_cap
+ if serializer is None:
+ serializer = rpc_serializer.NoOpSerializer()
+ self.serializer = serializer
super(RpcProxy, self).__init__()
def _set_version(self, msg, vers):
@@ -52,7 +66,11 @@ class RpcProxy(object):
:param msg: The message having a version added to it.
:param vers: The version number to add to the message.
"""
- msg['version'] = vers if vers else self.default_version
+ v = vers if vers else self.default_version
+ if (self.version_cap and not
+ rpc_common.version_is_compatible(self.version_cap, v)):
+ raise rpc_common.RpcVersionCapError(version=self.version_cap)
+ msg['version'] = v
def _get_topic(self, topic):
"""Return the topic to use for a message."""
@@ -62,9 +80,25 @@ class RpcProxy(object):
def make_namespaced_msg(method, namespace, **kwargs):
return {'method': method, 'namespace': namespace, 'args': kwargs}
- @staticmethod
- def make_msg(method, **kwargs):
- return RpcProxy.make_namespaced_msg(method, None, **kwargs)
+ def make_msg(self, method, **kwargs):
+ return self.make_namespaced_msg(method, self.RPC_API_NAMESPACE,
+ **kwargs)
+
+ def _serialize_msg_args(self, context, kwargs):
+ """Helper method called to serialize message arguments.
+
+ This calls our serializer on each argument, returning a new
+ set of args that have been serialized.
+
+ :param context: The request context
+ :param kwargs: The arguments to serialize
+ :returns: A new set of serialized arguments
+ """
+ new_kwargs = dict()
+ for argname, arg in kwargs.iteritems():
+ new_kwargs[argname] = self.serializer.serialize_entity(context,
+ arg)
+ return new_kwargs
def call(self, context, msg, topic=None, version=None, timeout=None):
"""rpc.call() a remote method.
@@ -81,9 +115,11 @@ class RpcProxy(object):
:returns: The return value from the remote method.
"""
self._set_version(msg, version)
+ msg['args'] = self._serialize_msg_args(context, msg['args'])
real_topic = self._get_topic(topic)
try:
- return rpc.call(context, real_topic, msg, timeout)
+ result = rpc.call(context, real_topic, msg, timeout)
+ return self.serializer.deserialize_entity(context, result)
except rpc.common.Timeout as exc:
raise rpc.common.Timeout(
exc.info, real_topic, msg.get('method'))
@@ -104,9 +140,11 @@ class RpcProxy(object):
from the remote method as they arrive.
"""
self._set_version(msg, version)
+ msg['args'] = self._serialize_msg_args(context, msg['args'])
real_topic = self._get_topic(topic)
try:
- return rpc.multicall(context, real_topic, msg, timeout)
+ result = rpc.multicall(context, real_topic, msg, timeout)
+ return self.serializer.deserialize_entity(context, result)
except rpc.common.Timeout as exc:
raise rpc.common.Timeout(
exc.info, real_topic, msg.get('method'))
@@ -124,6 +162,7 @@ class RpcProxy(object):
remote method.
"""
self._set_version(msg, version)
+ msg['args'] = self._serialize_msg_args(context, msg['args'])
rpc.cast(context, self._get_topic(topic), msg)
def fanout_cast(self, context, msg, topic=None, version=None):
@@ -139,6 +178,7 @@ class RpcProxy(object):
from the remote method.
"""
self._set_version(msg, version)
+ msg['args'] = self._serialize_msg_args(context, msg['args'])
rpc.fanout_cast(context, self._get_topic(topic), msg)
def cast_to_server(self, context, server_params, msg, topic=None,
@@ -157,6 +197,7 @@ class RpcProxy(object):
return values.
"""
self._set_version(msg, version)
+ msg['args'] = self._serialize_msg_args(context, msg['args'])
rpc.cast_to_server(context, server_params, self._get_topic(topic), msg)
def fanout_cast_to_server(self, context, server_params, msg, topic=None,
@@ -175,5 +216,6 @@ class RpcProxy(object):
return values.
"""
self._set_version(msg, version)
+ msg['args'] = self._serialize_msg_args(context, msg['args'])
rpc.fanout_cast_to_server(context, server_params,
self._get_topic(topic), msg)
diff --git a/nova/openstack/common/rpc/serializer.py b/nova/openstack/common/rpc/serializer.py
new file mode 100644
index 000000000..0a2c9c4f1
--- /dev/null
+++ b/nova/openstack/common/rpc/serializer.py
@@ -0,0 +1,52 @@
+# 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.
+
+"""Provides the definition of an RPC serialization handler"""
+
+import abc
+
+
+class Serializer(object):
+ """Generic (de-)serialization definition base class"""
+ __metaclass__ = abc.ABCMeta
+
+ @abc.abstractmethod
+ def serialize_entity(self, context, entity):
+ """Serialize something to primitive form.
+
+ :param context: Security context
+ :param entity: Entity to be serialized
+ :returns: Serialized form of entity
+ """
+ pass
+
+ @abc.abstractmethod
+ def deserialize_entity(self, context, entity):
+ """Deserialize something from primitive form.
+
+ :param context: Security context
+ :param entity: Primitive to be deserialized
+ :returns: Deserialized form of entity
+ """
+ pass
+
+
+class NoOpSerializer(Serializer):
+ """A serializer that does nothing"""
+
+ def serialize_entity(self, context, entity):
+ return entity
+
+ def deserialize_entity(self, context, entity):
+ return entity
diff --git a/nova/openstack/common/service.py b/nova/openstack/common/service.py
new file mode 100644
index 000000000..a1f430999
--- /dev/null
+++ b/nova/openstack/common/service.py
@@ -0,0 +1,333 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2010 United States Government as represented by the
+# Administrator of the National Aeronautics and Space Administration.
+# Copyright 2011 Justin Santa Barbara
+# 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.
+
+"""Generic Node base class for all workers that run on hosts."""
+
+import errno
+import os
+import random
+import signal
+import sys
+import time
+
+import eventlet
+import logging as std_logging
+from oslo.config import cfg
+
+from nova.openstack.common import eventlet_backdoor
+from nova.openstack.common.gettextutils import _
+from nova.openstack.common import importutils
+from nova.openstack.common import log as logging
+from nova.openstack.common import threadgroup
+
+
+rpc = importutils.try_import('nova.openstack.common.rpc')
+CONF = cfg.CONF
+LOG = logging.getLogger(__name__)
+
+
+class Launcher(object):
+ """Launch one or more services and wait for them to complete."""
+
+ def __init__(self):
+ """Initialize the service launcher.
+
+ :returns: None
+
+ """
+ self._services = threadgroup.ThreadGroup()
+ self.backdoor_port = eventlet_backdoor.initialize_if_enabled()
+
+ @staticmethod
+ def run_service(service):
+ """Start and wait for a service to finish.
+
+ :param service: service to run and wait for.
+ :returns: None
+
+ """
+ service.start()
+ service.wait()
+
+ def launch_service(self, service):
+ """Load and start the given service.
+
+ :param service: The service you would like to start.
+ :returns: None
+
+ """
+ service.backdoor_port = self.backdoor_port
+ self._services.add_thread(self.run_service, service)
+
+ def stop(self):
+ """Stop all services which are currently running.
+
+ :returns: None
+
+ """
+ self._services.stop()
+
+ def wait(self):
+ """Waits until all services have been stopped, and then returns.
+
+ :returns: None
+
+ """
+ self._services.wait()
+
+
+class SignalExit(SystemExit):
+ def __init__(self, signo, exccode=1):
+ super(SignalExit, self).__init__(exccode)
+ self.signo = signo
+
+
+class ServiceLauncher(Launcher):
+ def _handle_signal(self, signo, frame):
+ # Allow the process to be killed again and die from natural causes
+ signal.signal(signal.SIGTERM, signal.SIG_DFL)
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
+
+ raise SignalExit(signo)
+
+ def wait(self):
+ signal.signal(signal.SIGTERM, self._handle_signal)
+ signal.signal(signal.SIGINT, self._handle_signal)
+
+ LOG.debug(_('Full set of CONF:'))
+ CONF.log_opt_values(LOG, std_logging.DEBUG)
+
+ status = None
+ try:
+ super(ServiceLauncher, self).wait()
+ except SignalExit as exc:
+ signame = {signal.SIGTERM: 'SIGTERM',
+ signal.SIGINT: 'SIGINT'}[exc.signo]
+ LOG.info(_('Caught %s, exiting'), signame)
+ status = exc.code
+ except SystemExit as exc:
+ status = exc.code
+ finally:
+ if rpc:
+ rpc.cleanup()
+ self.stop()
+ return status
+
+
+class ServiceWrapper(object):
+ def __init__(self, service, workers):
+ self.service = service
+ self.workers = workers
+ self.children = set()
+ self.forktimes = []
+
+
+class ProcessLauncher(object):
+ def __init__(self):
+ self.children = {}
+ self.sigcaught = None
+ self.running = True
+ rfd, self.writepipe = os.pipe()
+ self.readpipe = eventlet.greenio.GreenPipe(rfd, 'r')
+
+ signal.signal(signal.SIGTERM, self._handle_signal)
+ signal.signal(signal.SIGINT, self._handle_signal)
+
+ def _handle_signal(self, signo, frame):
+ self.sigcaught = signo
+ self.running = False
+
+ # Allow the process to be killed again and die from natural causes
+ signal.signal(signal.SIGTERM, signal.SIG_DFL)
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
+
+ def _pipe_watcher(self):
+ # This will block until the write end is closed when the parent
+ # dies unexpectedly
+ self.readpipe.read()
+
+ LOG.info(_('Parent process has died unexpectedly, exiting'))
+
+ sys.exit(1)
+
+ def _child_process(self, service):
+ # Setup child signal handlers differently
+ def _sigterm(*args):
+ signal.signal(signal.SIGTERM, signal.SIG_DFL)
+ raise SignalExit(signal.SIGTERM)
+
+ signal.signal(signal.SIGTERM, _sigterm)
+ # Block SIGINT and let the parent send us a SIGTERM
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
+
+ # Reopen the eventlet hub to make sure we don't share an epoll
+ # fd with parent and/or siblings, which would be bad
+ eventlet.hubs.use_hub()
+
+ # Close write to ensure only parent has it open
+ os.close(self.writepipe)
+ # Create greenthread to watch for parent to close pipe
+ eventlet.spawn_n(self._pipe_watcher)
+
+ # Reseed random number generator
+ random.seed()
+
+ launcher = Launcher()
+ launcher.run_service(service)
+
+ def _start_child(self, wrap):
+ if len(wrap.forktimes) > wrap.workers:
+ # Limit ourselves to one process a second (over the period of
+ # number of workers * 1 second). This will allow workers to
+ # start up quickly but ensure we don't fork off children that
+ # die instantly too quickly.
+ if time.time() - wrap.forktimes[0] < wrap.workers:
+ LOG.info(_('Forking too fast, sleeping'))
+ time.sleep(1)
+
+ wrap.forktimes.pop(0)
+
+ wrap.forktimes.append(time.time())
+
+ pid = os.fork()
+ if pid == 0:
+ # NOTE(johannes): All exceptions are caught to ensure this
+ # doesn't fallback into the loop spawning children. It would
+ # be bad for a child to spawn more children.
+ status = 0
+ try:
+ self._child_process(wrap.service)
+ except SignalExit as exc:
+ signame = {signal.SIGTERM: 'SIGTERM',
+ signal.SIGINT: 'SIGINT'}[exc.signo]
+ LOG.info(_('Caught %s, exiting'), signame)
+ status = exc.code
+ except SystemExit as exc:
+ status = exc.code
+ except BaseException:
+ LOG.exception(_('Unhandled exception'))
+ status = 2
+ finally:
+ wrap.service.stop()
+
+ os._exit(status)
+
+ LOG.info(_('Started child %d'), pid)
+
+ wrap.children.add(pid)
+ self.children[pid] = wrap
+
+ return pid
+
+ def launch_service(self, service, workers=1):
+ wrap = ServiceWrapper(service, workers)
+
+ LOG.info(_('Starting %d workers'), wrap.workers)
+ while self.running and len(wrap.children) < wrap.workers:
+ self._start_child(wrap)
+
+ def _wait_child(self):
+ try:
+ # Don't block if no child processes have exited
+ pid, status = os.waitpid(0, os.WNOHANG)
+ if not pid:
+ return None
+ except OSError as exc:
+ if exc.errno not in (errno.EINTR, errno.ECHILD):
+ raise
+ return None
+
+ if os.WIFSIGNALED(status):
+ sig = os.WTERMSIG(status)
+ LOG.info(_('Child %(pid)d killed by signal %(sig)d'),
+ dict(pid=pid, sig=sig))
+ else:
+ code = os.WEXITSTATUS(status)
+ LOG.info(_('Child %(pid)s exited with status %(code)d'),
+ dict(pid=pid, code=code))
+
+ if pid not in self.children:
+ LOG.warning(_('pid %d not in child list'), pid)
+ return None
+
+ wrap = self.children.pop(pid)
+ wrap.children.remove(pid)
+ return wrap
+
+ def wait(self):
+ """Loop waiting on children to die and respawning as necessary"""
+
+ LOG.debug(_('Full set of CONF:'))
+ CONF.log_opt_values(LOG, std_logging.DEBUG)
+
+ while self.running:
+ wrap = self._wait_child()
+ if not wrap:
+ # Yield to other threads if no children have exited
+ # Sleep for a short time to avoid excessive CPU usage
+ # (see bug #1095346)
+ eventlet.greenthread.sleep(.01)
+ continue
+
+ while self.running and len(wrap.children) < wrap.workers:
+ self._start_child(wrap)
+
+ if self.sigcaught:
+ signame = {signal.SIGTERM: 'SIGTERM',
+ signal.SIGINT: 'SIGINT'}[self.sigcaught]
+ LOG.info(_('Caught %s, stopping children'), signame)
+
+ for pid in self.children:
+ try:
+ os.kill(pid, signal.SIGTERM)
+ except OSError as exc:
+ if exc.errno != errno.ESRCH:
+ raise
+
+ # Wait for children to die
+ if self.children:
+ LOG.info(_('Waiting on %d children to exit'), len(self.children))
+ while self.children:
+ self._wait_child()
+
+
+class Service(object):
+ """Service object for binaries running on hosts."""
+
+ def __init__(self, threads=1000):
+ self.tg = threadgroup.ThreadGroup(threads)
+
+ def start(self):
+ pass
+
+ def stop(self):
+ self.tg.stop()
+
+ def wait(self):
+ self.tg.wait()
+
+
+def launch(service, workers=None):
+ if workers:
+ launcher = ProcessLauncher()
+ launcher.launch_service(service, workers=workers)
+ else:
+ launcher = ServiceLauncher()
+ launcher.launch_service(service)
+ return launcher
diff --git a/nova/openstack/common/threadgroup.py b/nova/openstack/common/threadgroup.py
new file mode 100644
index 000000000..26a391f58
--- /dev/null
+++ b/nova/openstack/common/threadgroup.py
@@ -0,0 +1,121 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2012 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.
+
+from eventlet import greenlet
+from eventlet import greenpool
+from eventlet import greenthread
+
+from nova.openstack.common import log as logging
+from nova.openstack.common import loopingcall
+
+
+LOG = logging.getLogger(__name__)
+
+
+def _thread_done(gt, *args, **kwargs):
+ """ Callback function to be passed to GreenThread.link() when we spawn()
+ Calls the :class:`ThreadGroup` to notify if.
+
+ """
+ kwargs['group'].thread_done(kwargs['thread'])
+
+
+class Thread(object):
+ """ Wrapper around a greenthread, that holds a reference to the
+ :class:`ThreadGroup`. The Thread will notify the :class:`ThreadGroup` when
+ it has done so it can be removed from the threads list.
+ """
+ def __init__(self, thread, group):
+ self.thread = thread
+ self.thread.link(_thread_done, group=group, thread=self)
+
+ def stop(self):
+ self.thread.kill()
+
+ def wait(self):
+ return self.thread.wait()
+
+
+class ThreadGroup(object):
+ """ The point of the ThreadGroup classis to:
+
+ * keep track of timers and greenthreads (making it easier to stop them
+ when need be).
+ * provide an easy API to add timers.
+ """
+ def __init__(self, thread_pool_size=10):
+ self.pool = greenpool.GreenPool(thread_pool_size)
+ self.threads = []
+ self.timers = []
+
+ def add_dynamic_timer(self, callback, initial_delay=None,
+ periodic_interval_max=None, *args, **kwargs):
+ timer = loopingcall.DynamicLoopingCall(callback, *args, **kwargs)
+ timer.start(initial_delay=initial_delay,
+ periodic_interval_max=periodic_interval_max)
+ self.timers.append(timer)
+
+ def add_timer(self, interval, callback, initial_delay=None,
+ *args, **kwargs):
+ pulse = loopingcall.FixedIntervalLoopingCall(callback, *args, **kwargs)
+ pulse.start(interval=interval,
+ initial_delay=initial_delay)
+ self.timers.append(pulse)
+
+ def add_thread(self, callback, *args, **kwargs):
+ gt = self.pool.spawn(callback, *args, **kwargs)
+ th = Thread(gt, self)
+ self.threads.append(th)
+
+ def thread_done(self, thread):
+ self.threads.remove(thread)
+
+ def stop(self):
+ current = greenthread.getcurrent()
+ for x in self.threads:
+ if x is current:
+ # don't kill the current thread.
+ continue
+ try:
+ x.stop()
+ except Exception as ex:
+ LOG.exception(ex)
+
+ for x in self.timers:
+ try:
+ x.stop()
+ except Exception as ex:
+ LOG.exception(ex)
+ self.timers = []
+
+ def wait(self):
+ for x in self.timers:
+ try:
+ x.wait()
+ except greenlet.GreenletExit:
+ pass
+ except Exception as ex:
+ LOG.exception(ex)
+ current = greenthread.getcurrent()
+ for x in self.threads:
+ if x is current:
+ continue
+ try:
+ x.wait()
+ except greenlet.GreenletExit:
+ pass
+ except Exception as ex:
+ LOG.exception(ex)
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/quota.py b/nova/quota.py
index 8aaa3ed31..a1c877ecc 100644
--- a/nova/quota.py
+++ b/nova/quota.py
@@ -105,14 +105,18 @@ class DbQuotaDriver(object):
def get_defaults(self, context, resources):
"""Given a list of resources, retrieve the default quotas.
+ Use the class quotas named `_DEFAULT_QUOTA_NAME` as default quotas,
+ if it exists.
:param context: The request context, for access checks.
:param resources: A dictionary of the registered resources.
"""
quotas = {}
+ default_quotas = db.quota_class_get_default(context)
for resource in resources.values():
- quotas[resource.name] = resource.default
+ quotas[resource.name] = default_quotas.get(resource.name,
+ resource.default)
return quotas
@@ -180,6 +184,8 @@ class DbQuotaDriver(object):
else:
class_quotas = {}
+ default_quotas = self.get_defaults(context, resources)
+
for resource in resources.values():
# Omit default/quota class values
if not defaults and resource.name not in project_quotas:
@@ -187,7 +193,7 @@ class DbQuotaDriver(object):
quotas[resource.name] = dict(
limit=project_quotas.get(resource.name, class_quotas.get(
- resource.name, resource.default)),
+ resource.name, default_quotas[resource.name])),
)
# Include usages if desired. This is optional because one
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 12bab14c3..245640e5e 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -19,26 +19,19 @@
"""Generic Node base class for all workers that run on hosts."""
-import errno
-import inspect
import os
import random
-import signal
import sys
-import time
-import eventlet
-import greenlet
from oslo.config import cfg
from nova import conductor
from nova import context
from nova import exception
-from nova.openstack.common import eventlet_backdoor
from nova.openstack.common import importutils
from nova.openstack.common import log as logging
-from nova.openstack.common import loopingcall
from nova.openstack.common import rpc
+from nova.openstack.common import service
from nova import servicegroup
from nova import utils
from nova import version
@@ -119,275 +112,7 @@ CONF.register_opts(service_opts)
CONF.import_opt('host', 'nova.netconf')
-class SignalExit(SystemExit):
- def __init__(self, signo, exccode=1):
- super(SignalExit, self).__init__(exccode)
- self.signo = signo
-
-
-class Launcher(object):
- """Launch one or more services and wait for them to complete."""
-
- def __init__(self):
- """Initialize the service launcher.
-
- :returns: None
-
- """
- self._services = []
- self.backdoor_port = eventlet_backdoor.initialize_if_enabled()
-
- @staticmethod
- def run_server(server):
- """Start and wait for a server to finish.
-
- :param service: Server to run and wait for.
- :returns: None
-
- """
- server.start()
- server.wait()
-
- def launch_server(self, server):
- """Load and start the given server.
-
- :param server: The server you would like to start.
- :returns: None
-
- """
- if self.backdoor_port is not None:
- server.backdoor_port = self.backdoor_port
- gt = eventlet.spawn(self.run_server, server)
- self._services.append(gt)
-
- def stop(self):
- """Stop all services which are currently running.
-
- :returns: None
-
- """
- for service in self._services:
- service.kill()
-
- def wait(self):
- """Waits until all services have been stopped, and then returns.
-
- :returns: None
-
- """
- for service in self._services:
- try:
- service.wait()
- except greenlet.GreenletExit:
- pass
-
-
-class ServiceLauncher(Launcher):
- def _handle_signal(self, signo, frame):
- # Allow the process to be killed again and die from natural causes
- signal.signal(signal.SIGTERM, signal.SIG_DFL)
- signal.signal(signal.SIGINT, signal.SIG_DFL)
-
- raise SignalExit(signo)
-
- def wait(self):
- signal.signal(signal.SIGTERM, self._handle_signal)
- signal.signal(signal.SIGINT, self._handle_signal)
-
- LOG.debug(_('Full set of CONF:'))
- for flag in CONF:
- flag_get = CONF.get(flag, None)
- # hide flag contents from log if contains a password
- # should use secret flag when switch over to openstack-common
- if ("_password" in flag or "_key" in flag or
- (flag == "sql_connection" and "mysql:" in flag_get)):
- LOG.debug(_('%(flag)s : FLAG SET ') % locals())
- else:
- LOG.debug('%(flag)s : %(flag_get)s' % locals())
-
- status = None
- try:
- super(ServiceLauncher, self).wait()
- except SignalExit as exc:
- signame = {signal.SIGTERM: 'SIGTERM',
- signal.SIGINT: 'SIGINT'}[exc.signo]
- LOG.info(_('Caught %s, exiting'), signame)
- status = exc.code
- except SystemExit as exc:
- status = exc.code
- finally:
- self.stop()
- rpc.cleanup()
-
- if status is not None:
- sys.exit(status)
-
-
-class ServerWrapper(object):
- def __init__(self, server, workers):
- self.server = server
- self.workers = workers
- self.children = set()
- self.forktimes = []
-
-
-class ProcessLauncher(object):
- def __init__(self):
- self.children = {}
- self.sigcaught = None
- self.running = True
- rfd, self.writepipe = os.pipe()
- self.readpipe = eventlet.greenio.GreenPipe(rfd, 'r')
-
- signal.signal(signal.SIGTERM, self._handle_signal)
- signal.signal(signal.SIGINT, self._handle_signal)
-
- def _handle_signal(self, signo, frame):
- self.sigcaught = signo
- self.running = False
-
- # Allow the process to be killed again and die from natural causes
- signal.signal(signal.SIGTERM, signal.SIG_DFL)
- signal.signal(signal.SIGINT, signal.SIG_DFL)
-
- def _pipe_watcher(self):
- # This will block until the write end is closed when the parent
- # dies unexpectedly
- self.readpipe.read()
-
- LOG.info(_('Parent process has died unexpectedly, exiting'))
-
- sys.exit(1)
-
- def _child_process(self, server):
- # Setup child signal handlers differently
- def _sigterm(*args):
- signal.signal(signal.SIGTERM, signal.SIG_DFL)
- raise SignalExit(signal.SIGTERM)
-
- signal.signal(signal.SIGTERM, _sigterm)
- # Block SIGINT and let the parent send us a SIGTERM
- signal.signal(signal.SIGINT, signal.SIG_IGN)
-
- # Reopen the eventlet hub to make sure we don't share an epoll
- # fd with parent and/or siblings, which would be bad
- eventlet.hubs.use_hub()
-
- # Close write to ensure only parent has it open
- os.close(self.writepipe)
- # Create greenthread to watch for parent to close pipe
- eventlet.spawn(self._pipe_watcher)
-
- # Reseed random number generator
- random.seed()
-
- launcher = Launcher()
- launcher.run_server(server)
-
- def _start_child(self, wrap):
- if len(wrap.forktimes) > wrap.workers:
- # Limit ourselves to one process a second (over the period of
- # number of workers * 1 second). This will allow workers to
- # start up quickly but ensure we don't fork off children that
- # die instantly too quickly.
- if time.time() - wrap.forktimes[0] < wrap.workers:
- LOG.info(_('Forking too fast, sleeping'))
- time.sleep(1)
-
- wrap.forktimes.pop(0)
-
- wrap.forktimes.append(time.time())
-
- pid = os.fork()
- if pid == 0:
- # NOTE(johannes): All exceptions are caught to ensure this
- # doesn't fallback into the loop spawning children. It would
- # be bad for a child to spawn more children.
- status = 0
- try:
- self._child_process(wrap.server)
- except SignalExit as exc:
- signame = {signal.SIGTERM: 'SIGTERM',
- signal.SIGINT: 'SIGINT'}[exc.signo]
- LOG.info(_('Caught %s, exiting'), signame)
- status = exc.code
- except SystemExit as exc:
- status = exc.code
- except BaseException:
- LOG.exception(_('Unhandled exception'))
- status = 2
- finally:
- wrap.server.stop()
-
- os._exit(status)
-
- LOG.info(_('Started child %d'), pid)
-
- wrap.children.add(pid)
- self.children[pid] = wrap
-
- return pid
-
- def launch_server(self, server, workers=1):
- wrap = ServerWrapper(server, workers)
-
- LOG.info(_('Starting %d workers'), wrap.workers)
- while self.running and len(wrap.children) < wrap.workers:
- self._start_child(wrap)
-
- def _wait_child(self):
- try:
- pid, status = os.wait()
- except OSError as exc:
- if exc.errno not in (errno.EINTR, errno.ECHILD):
- raise
- return None
-
- if os.WIFSIGNALED(status):
- sig = os.WTERMSIG(status)
- LOG.info(_('Child %(pid)d killed by signal %(sig)d'), locals())
- else:
- code = os.WEXITSTATUS(status)
- LOG.info(_('Child %(pid)d exited with status %(code)d'), locals())
-
- if pid not in self.children:
- LOG.warning(_('pid %d not in child list'), pid)
- return None
-
- wrap = self.children.pop(pid)
- wrap.children.remove(pid)
- return wrap
-
- def wait(self):
- """Loop waiting on children to die and respawning as necessary."""
- while self.running:
- wrap = self._wait_child()
- if not wrap:
- continue
-
- while self.running and len(wrap.children) < wrap.workers:
- self._start_child(wrap)
-
- if self.sigcaught:
- signame = {signal.SIGTERM: 'SIGTERM',
- signal.SIGINT: 'SIGINT'}[self.sigcaught]
- LOG.info(_('Caught %s, stopping children'), signame)
-
- for pid in self.children:
- try:
- os.kill(pid, signal.SIGTERM)
- except OSError as exc:
- if exc.errno != errno.ESRCH:
- raise
-
- # Wait for children to die
- if self.children:
- LOG.info(_('Waiting on %d children to exit'), len(self.children))
- while self.children:
- self._wait_child()
-
-
-class Service(object):
+class Service(service.Service):
"""Service object for binaries running on hosts.
A service takes a manager and enables rpc by listening to queues based
@@ -398,6 +123,7 @@ class Service(object):
periodic_enable=None, periodic_fuzzy_delay=None,
periodic_interval_max=None, db_allowed=True,
*args, **kwargs):
+ super(Service, self).__init__()
self.host = host
self.binary = binary
self.topic = topic
@@ -417,7 +143,6 @@ class Service(object):
self.periodic_fuzzy_delay = periodic_fuzzy_delay
self.periodic_interval_max = periodic_interval_max
self.saved_args, self.saved_kwargs = args, kwargs
- self.timers = []
self.backdoor_port = None
self.conductor_api = conductor.API(use_local=db_allowed)
self.conductor_api.wait_until_ready(context.get_admin_context())
@@ -464,9 +189,7 @@ class Service(object):
LOG.debug(_("Join ServiceGroup membership for this service %s")
% self.topic)
# Add service to the ServiceGroup membership group.
- pulse = self.servicegroup_api.join(self.host, self.topic, self)
- if pulse:
- self.timers.append(pulse)
+ self.servicegroup_api.join(self.host, self.topic, self)
if self.periodic_enable:
if self.periodic_fuzzy_delay:
@@ -474,10 +197,10 @@ class Service(object):
else:
initial_delay = None
- periodic = loopingcall.DynamicLoopingCall(self.periodic_tasks)
- periodic.start(initial_delay=initial_delay,
- periodic_interval_max=self.periodic_interval_max)
- self.timers.append(periodic)
+ self.tg.add_dynamic_timer(self.periodic_tasks,
+ initial_delay=initial_delay,
+ periodic_interval_max=
+ self.periodic_interval_max)
def _create_service_ref(self, context):
svc_values = {
@@ -514,7 +237,7 @@ class Service(object):
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:
@@ -546,25 +269,12 @@ class Service(object):
LOG.warn(_('Service killed that has no database entry'))
def stop(self):
- # Try to shut the connection down, but if we get any sort of
- # errors, go ahead and ignore them.. as we're shutting down anyway
try:
self.conn.close()
except Exception:
pass
- for x in self.timers:
- try:
- x.stop()
- except Exception:
- pass
- self.timers = []
- def wait(self):
- for x in self.timers:
- try:
- x.wait()
- except Exception:
- pass
+ super(Service, self).stop()
def periodic_tasks(self, raise_on_error=False):
"""Tasks to be run at a periodic interval."""
@@ -667,6 +377,10 @@ class WSGIService(object):
self.server.wait()
+def process_launcher():
+ return service.ProcessLauncher()
+
+
# NOTE(vish): the global launcher is to maintain the existing
# functionality of calling service.serve +
# service.wait
@@ -678,12 +392,7 @@ def serve(server, workers=None):
if _launcher:
raise RuntimeError(_('serve() can only be called once'))
- if workers:
- _launcher = ProcessLauncher()
- _launcher.launch_server(server, workers=workers)
- else:
- _launcher = ServiceLauncher()
- _launcher.launch_server(server)
+ _launcher = service.launch(server, workers=workers)
def wait():
diff --git a/nova/servicegroup/drivers/db.py b/nova/servicegroup/drivers/db.py
index 24fcfd04f..22b25d61c 100644
--- a/nova/servicegroup/drivers/db.py
+++ b/nova/servicegroup/drivers/db.py
@@ -18,7 +18,6 @@ from oslo.config import cfg
from nova import conductor
from nova import context
from nova.openstack.common import log as logging
-from nova.openstack.common import loopingcall
from nova.openstack.common import timeutils
from nova.servicegroup import api
from nova import utils
@@ -47,11 +46,8 @@ class DbDriver(api.ServiceGroupDriver):
' ServiceGroup driver'))
report_interval = service.report_interval
if report_interval:
- pulse = loopingcall.FixedIntervalLoopingCall(self._report_state,
- service)
- pulse.start(interval=report_interval,
- initial_delay=report_interval)
- return pulse
+ service.tg.add_timer(report_interval, self._report_state,
+ report_interval, service)
def is_up(self, service_ref):
"""Moved from nova.utils
diff --git a/nova/servicegroup/drivers/mc.py b/nova/servicegroup/drivers/mc.py
index 86c27a3aa..6e8cda456 100644
--- a/nova/servicegroup/drivers/mc.py
+++ b/nova/servicegroup/drivers/mc.py
@@ -22,7 +22,6 @@ from oslo.config import cfg
from nova import conductor
from nova import context
from nova.openstack.common import log as logging
-from nova.openstack.common import loopingcall
from nova.openstack.common import memorycache
from nova.openstack.common import timeutils
from nova.servicegroup import api
@@ -58,11 +57,8 @@ class MemcachedDriver(api.ServiceGroupDriver):
'Memcached based ServiceGroup driver'))
report_interval = service.report_interval
if report_interval:
- pulse = loopingcall.FixedIntervalLoopingCall(self._report_state,
- service)
- pulse.start(interval=report_interval,
- initial_delay=report_interval)
- return pulse
+ service.tg.add_timer(report_interval, self._report_state,
+ report_interval, service)
def is_up(self, service_ref):
"""Moved from nova.utils
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..7201ad954 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,8 +198,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(addSecurityGroup=dict(name="test"))
req = fakes.HTTPRequest.blank('/v2/fake/servers/1/action')
@@ -233,8 +233,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 +256,31 @@ 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)
+
class TestQuantumSecurityGroupRulesTestCase(TestQuantumSecurityGroupsTestCase):
def setUp(self):
@@ -417,6 +430,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 +455,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)
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..6bd220198 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})
@@ -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..387a5eb21 100644
--- a/nova/tests/api/openstack/compute/contrib/test_services.py
+++ b/nova/tests/api/openstack/compute/contrib/test_services.py
@@ -21,6 +21,7 @@ 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
@@ -202,3 +203,13 @@ class ServicesTest(test.TestCase):
res_dict = self.controller.update(req, "disable", body)
self.assertEqual(res_dict['service']['status'], 'disabled')
+
+ # 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)
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_volumes.py b/nova/tests/api/openstack/compute/contrib/test_volumes.py
index d1d7210f0..bdca7fdef 100644
--- a/nova/tests/api/openstack/compute/contrib/test_volumes.py
+++ b/nova/tests/api/openstack/compute/contrib/test_volumes.py
@@ -47,42 +47,52 @@ 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',
- 'uuid': FAKE_UUID,
- 'instance_type': dict(inst_type),
- 'access_ip_v4': '1.2.3.4',
- 'access_ip_v6': 'fead::1234',
- 'image_ref': IMAGE_UUID,
- 'user_id': 'fake',
- 'project_id': 'fake',
- 'created_at': datetime.datetime(2010, 10, 10, 12, 0, 0),
- 'updated_at': datetime.datetime(2010, 11, 11, 11, 0, 0),
- 'progress': 0,
- 'fixed_ips': []
- }], resv_id)
+ 'display_name': 'test_server',
+ 'uuid': FAKE_UUID,
+ 'instance_type': dict(inst_type),
+ 'access_ip_v4': '1.2.3.4',
+ 'access_ip_v6': 'fead::1234',
+ 'image_ref': IMAGE_UUID,
+ 'user_id': 'fake',
+ 'project_id': 'fake',
+ 'created_at': datetime.datetime(2010, 10, 10, 12, 0, 0),
+ 'updated_at': datetime.datetime(2010, 11, 11, 11, 0, 0),
+ 'progress': 0,
+ 'fixed_ips': []
+ }], resv_id)
def fake_get_instance(self, context, instance_id):
- return({'uuid': instance_id})
+ return {'uuid': instance_id}
def fake_get_volume(self, context, id):
- return({'id': 'woot'})
+ return {'id': 'woot'}
def fake_attach_volume(self, context, instance, volume_id, device):
- return()
+ pass
def fake_detach_volume(self, context, instance, volume):
- return()
+ pass
+
+
+def fake_create_snapshot(self, context, volume, name, description):
+ return {'id': 123,
+ 'volume_id': 'fakeVolId',
+ 'status': 'available',
+ 'volume_size': 123,
+ 'created_at': '2013-01-01 00:00:01',
+ 'display_name': 'myVolumeName',
+ 'display_description': 'myVolumeDescription'}
def fake_get_instance_bdms(self, context, instance):
- return([{'id': 1,
+ return [{'id': 1,
'instance_uuid': instance['uuid'],
'device_name': '/dev/fake0',
'delete_on_termination': 'False',
@@ -97,7 +107,7 @@ def fake_get_instance_bdms(self, context, instance):
'virtual_name': 'MyNamesVirtual',
'snapshot_id': None,
'volume_id': FAKE_UUID_B,
- 'volume_size': 1}])
+ 'volume_size': 1}]
class BootFromVolumeTest(test.TestCase):
@@ -668,3 +678,29 @@ class UnprocessableSnapshotTestCase(CommonUnprocessableEntityTestCase,
resource = 'os-snapshots'
entity_name = 'snapshot'
controller_cls = volumes.SnapshotController
+
+
+class CreateSnapshotTestCase(test.TestCase):
+ def setUp(self):
+ super(CreateSnapshotTestCase, self).setUp()
+ self.controller = volumes.SnapshotController()
+ self.stubs.Set(cinder.API, 'get', fake_get_volume)
+ self.stubs.Set(cinder.API, 'create_snapshot_force',
+ fake_create_snapshot)
+ self.stubs.Set(cinder.API, 'create_snapshot', fake_create_snapshot)
+ self.req = fakes.HTTPRequest.blank('/v2/fake/os-snapshots')
+ self.req.method = 'POST'
+ self.body = {'snapshot': {'volume_id': 1}}
+
+ def test_force_true(self):
+ self.body['snapshot']['force'] = 'True'
+ self.controller.create(self.req, body=self.body)
+
+ def test_force_false(self):
+ self.body['snapshot']['force'] = 'f'
+ self.controller.create(self.req, body=self.body)
+
+ def test_force_invalid(self):
+ self.body['snapshot']['force'] = 'foo'
+ self.assertRaises(exception.InvalidParameterValue,
+ self.controller.create, self.req, body=self.body)
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 3122023a4..69952943e 100644
--- a/nova/tests/api/openstack/compute/test_extensions.py
+++ b/nova/tests/api/openstack/compute/test_extensions.py
@@ -215,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 5d2118564..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
@@ -935,10 +936,10 @@ class ServersControllerTest(test.TestCase):
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('ip' in search_opts)
self.assertFalse('unknown_option' in search_opts)
return [fakes.stub_instance(100, uuid=server_uuid)]
@@ -981,10 +982,8 @@ class ServersControllerTest(test.TestCase):
self.assertEqual(len(servers), 1)
self.assertEqual(servers[0]['id'], server_uuid)
- def test_get_servers_admin_allows_ip(self):
- """Test getting servers by ip with admin_api enabled and
- admin context
- """
+ 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,
@@ -997,8 +996,7 @@ class ServersControllerTest(test.TestCase):
self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
- req = fakes.HTTPRequest.blank('/v2/fake/servers?ip=10\..*',
- use_admin_context=True)
+ req = fakes.HTTPRequest.blank('/v2/fake/servers?ip=10\..*')
servers = self.controller.index(req)['servers']
self.assertEqual(len(servers), 1)
@@ -1405,8 +1403,9 @@ class ServersControllerTest(test.TestCase):
name='public image', is_public=True,
status='active', properties={'key1': 'value1'},
min_ram="4096", min_disk="10")
- self.stubs.Set(compute_api.API, '_get_image',
- fake_get_image)
+
+ 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'
@@ -1432,8 +1431,64 @@ class ServersControllerTest(test.TestCase):
name='public image', is_public=True,
status='active', properties={'key1': 'value1'},
min_ram="128", min_disk="100000")
- self.stubs.Set(compute_api.API, '_get_image',
- fake_get_image)
+
+ 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_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',
+ 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'
@@ -1727,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
@@ -1750,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
@@ -1860,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
@@ -1883,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'
@@ -2304,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
@@ -2312,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):
@@ -2337,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
@@ -2346,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):
@@ -2431,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
@@ -2449,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):
@@ -4096,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..9aae11201 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'
@@ -1033,8 +1043,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 +1095,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 cef9d2cb3..b1f046c52 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,
@@ -135,7 +145,7 @@ class BaseTestCase(test.TestCase):
'memory_mb': 131072,
'current_workload': 0,
'vcpus': 16,
- 'cpu_info':'ppc64,powervm,3940',
+ 'cpu_info': 'ppc64,powervm,3940',
'running_vms': 0,
'free_disk_gb': 259,
'service_id': 7,
@@ -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'],
@@ -3493,6 +3721,7 @@ class ComputeTestCase(BaseTestCase):
self.compute.driver.ensure_filtering_rules_for_instance(
mox.IsA(instance), nw_info)
+ test_notifier.NOTIFICATIONS = []
# start test
self.mox.ReplayAll()
migrate_data = {'is_shared_storage': False}
@@ -3500,6 +3729,13 @@ class ComputeTestCase(BaseTestCase):
block_migration=False,
migrate_data=migrate_data)
self.assertEqual(ret, None)
+ self.assertEqual(len(test_notifier.NOTIFICATIONS), 2)
+ msg = test_notifier.NOTIFICATIONS[0]
+ self.assertEqual(msg['event_type'],
+ 'compute.instance.live_migration.pre.start')
+ msg = test_notifier.NOTIFICATIONS[1]
+ self.assertEqual(msg['event_type'],
+ 'compute.instance.live_migration.pre.end')
# cleanup
db.instance_destroy(c, instance['uuid'])
@@ -3719,11 +3955,20 @@ class ComputeTestCase(BaseTestCase):
self.compute.network_api.setup_networks_on_host(self.admin_ctxt,
mox.IgnoreArg(), self.compute.host)
+ test_notifier.NOTIFICATIONS = []
self.mox.ReplayAll()
self.compute.post_live_migration_at_destination(self.admin_ctxt,
self.instance)
+ self.assertEqual(len(test_notifier.NOTIFICATIONS), 2)
+ msg = test_notifier.NOTIFICATIONS[0]
+ self.assertEqual(msg['event_type'],
+ 'compute.instance.live_migration.post.dest.start')
+ msg = test_notifier.NOTIFICATIONS[1]
+ self.assertEqual(msg['event_type'],
+ 'compute.instance.live_migration.post.dest.end')
+
return self.compute.conductor_api.instance_get_by_uuid(self.admin_ctxt,
self.instance['uuid'])
@@ -3749,6 +3994,31 @@ class ComputeTestCase(BaseTestCase):
updated = self._finish_post_live_migration_at_destination()
self.assertIsNone(updated['node'])
+ def test_rollback_live_migration_at_destination_correctly(self):
+ # creating instance testdata
+ c = context.get_admin_context()
+ instance_ref = self._create_fake_instance({'host': 'dummy'})
+ inst_uuid = instance_ref['uuid']
+ inst_id = instance_ref['id']
+
+ instance = jsonutils.to_primitive(db.instance_get(c, inst_id))
+ test_notifier.NOTIFICATIONS = []
+ # start test
+ self.mox.ReplayAll()
+ ret = self.compute.rollback_live_migration_at_destination(c,
+ instance=instance)
+ self.assertEqual(ret, None)
+ self.assertEqual(len(test_notifier.NOTIFICATIONS), 2)
+ msg = test_notifier.NOTIFICATIONS[0]
+ self.assertEqual(msg['event_type'],
+ 'compute.instance.live_migration.rollback.dest.start')
+ msg = test_notifier.NOTIFICATIONS[1]
+ self.assertEqual(msg['event_type'],
+ 'compute.instance.live_migration.rollback.dest.end')
+
+ # cleanup
+ db.instance_destroy(c, inst_uuid)
+
def test_run_kill_vm(self):
# Detect when a vm is terminated behind the scenes.
self.stubs.Set(compute_manager.ComputeManager,
@@ -3888,13 +4158,15 @@ class ComputeTestCase(BaseTestCase):
deleted_at = (timeutils.utcnow() -
datetime.timedelta(hours=1, minutes=5))
instance = self._create_fake_instance({"deleted_at": deleted_at,
- "deleted": True})
+ "deleted": True})
self.compute.host = instance['host']
self.mox.StubOutWithMock(self.compute, '_get_instances_on_driver')
- self.compute._get_instances_on_driver(admin_context).AndReturn(
- [instance])
+ self.compute._get_instances_on_driver(
+ admin_context, {'deleted': True,
+ 'soft_deleted': False,
+ 'host': self.compute.host}).AndReturn([instance])
self.flags(running_deleted_instance_timeout=3600,
running_deleted_instance_action='reap')
@@ -3922,13 +4194,11 @@ class ComputeTestCase(BaseTestCase):
instance1['deleted'] = True
instance1['deleted_at'] = "sometimeago"
- instance2 = {}
- instance2['deleted'] = False
- instance2['deleted_at'] = None
-
self.mox.StubOutWithMock(self.compute, '_get_instances_on_driver')
- self.compute._get_instances_on_driver(admin_context).AndReturn(
- [instance1, instance2])
+ self.compute._get_instances_on_driver(
+ admin_context, {'deleted': True,
+ 'soft_deleted': False,
+ 'host': self.compute.host}).AndReturn([instance1])
self.mox.StubOutWithMock(timeutils, 'is_older_than')
timeutils.is_older_than('sometimeago',
@@ -4046,25 +4316,23 @@ class ComputeTestCase(BaseTestCase):
instances = [{'uuid': 'fake_uuid1', 'vm_state': vm_states.RESCUED,
'launched_at': timed_out_time},
- {'uuid': 'fake_uuid2', 'vm_state': vm_states.ACTIVE,
+ {'uuid': 'fake_uuid2', 'vm_state': vm_states.RESCUED,
'launched_at': timed_out_time},
- {'uuid': 'fake_uuid3', 'vm_state': vm_states.ACTIVE,
- 'launched_at': not_timed_out_time},
- {'uuid': 'fake_uuid4', 'vm_state': vm_states.RESCUED,
- 'launched_at': timed_out_time},
- {'uuid': 'fake_uuid5', 'vm_state': vm_states.RESCUED,
+ {'uuid': 'fake_uuid3', 'vm_state': vm_states.RESCUED,
'launched_at': not_timed_out_time}]
- unrescued_instances = {'fake_uuid1': False, 'fake_uuid4': False}
+ unrescued_instances = {'fake_uuid1': False, 'fake_uuid2': False}
- def fake_instance_get_all_by_host(context, host, columns_to_join):
+ def fake_instance_get_all_by_filters(context, filters,
+ columns_to_join):
self.assertEqual(columns_to_join, [])
return instances
def fake_unrescue(context, instance):
unrescued_instances[instance['uuid']] = True
- self.stubs.Set(self.compute.conductor_api, 'instance_get_all_by_host',
- fake_instance_get_all_by_host)
+ self.stubs.Set(self.compute.conductor_api,
+ 'instance_get_all_by_filters',
+ fake_instance_get_all_by_filters)
self.stubs.Set(self.compute.conductor_api, 'compute_unrescue',
fake_unrescue)
@@ -4315,8 +4583,8 @@ class ComputeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute, '_legacy_nw_info')
self.mox.StubOutWithMock(self.compute.driver, 'destroy')
- self.compute._get_instances_on_driver(fake_context).AndReturn(
- instances)
+ self.compute._get_instances_on_driver(
+ fake_context, {'deleted': False}).AndReturn(instances)
self.compute._get_instance_nw_info(fake_context,
evacuated_instance).AndReturn(
'fake_network_info')
@@ -4368,8 +4636,8 @@ class ComputeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute, '_legacy_nw_info')
self.mox.StubOutWithMock(self.compute.driver, 'destroy')
- self.compute._get_instances_on_driver(fake_context).AndReturn(
- instances)
+ self.compute._get_instances_on_driver(
+ fake_context, {'deleted': False}).AndReturn(instances)
self.compute._get_instance_nw_info(fake_context,
evacuated_instance).AndReturn(
'fake_network_info')
@@ -4426,8 +4694,8 @@ class ComputeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute, '_legacy_nw_info')
self.mox.StubOutWithMock(self.compute.driver, 'destroy')
- self.compute._get_instances_on_driver(fake_context).AndReturn(
- instances)
+ self.compute._get_instances_on_driver(
+ fake_context, {'deleted': False}).AndReturn(instances)
self.compute._get_instance_nw_info(fake_context,
evacuated_instance).AndReturn(
'fake_network_info')
@@ -4533,8 +4801,8 @@ class ComputeTestCase(BaseTestCase):
self.compute.init_virt_events()
# simulate failed instance
- self.compute._get_instances_on_driver(fake_context).AndReturn([
- deleted_instance])
+ self.compute._get_instances_on_driver(
+ fake_context, {'deleted': False}).AndReturn([deleted_instance])
self.compute._get_instance_nw_info(fake_context, deleted_instance
).AndRaise(exception.InstanceNotFound(
instance_id=deleted_instance['uuid']))
@@ -4583,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')
@@ -4603,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(
@@ -4615,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
@@ -4693,6 +4981,7 @@ class ComputeTestCase(BaseTestCase):
# Test getting instances when driver doesn't support
# 'list_instance_uuids'
self.compute.host = 'host'
+ filters = {'host': self.compute.host}
fake_context = context.get_admin_context()
all_instances = []
@@ -4708,19 +4997,19 @@ class ComputeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute.driver,
'list_instances')
self.mox.StubOutWithMock(self.compute.conductor_api,
- 'instance_get_all_by_host')
+ 'instance_get_all_by_filters')
self.compute.driver.list_instance_uuids().AndRaise(
NotImplementedError())
self.compute.driver.list_instances().AndReturn(
[inst['name'] for inst in driver_instances])
- self.compute.conductor_api.instance_get_all_by_host(
- fake_context, self.compute.host,
+ self.compute.conductor_api.instance_get_all_by_filters(
+ fake_context, filters,
columns_to_join=[]).AndReturn(all_instances)
self.mox.ReplayAll()
- result = self.compute._get_instances_on_driver(fake_context)
+ result = self.compute._get_instances_on_driver(fake_context, filters)
self.assertEqual(driver_instances, result)
def test_instance_usage_audit(self):
@@ -4812,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
@@ -4831,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
@@ -4847,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
@@ -4866,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
@@ -4879,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'
@@ -4898,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)
@@ -4909,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,
@@ -4926,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,
@@ -4952,7 +5261,7 @@ 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:
@@ -4965,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,
@@ -4980,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)
@@ -4992,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)
@@ -5004,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)
@@ -5035,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)
@@ -5048,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:
@@ -5064,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'])
@@ -5120,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': ''})
@@ -5175,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'])
@@ -5186,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'],
@@ -5502,6 +5821,128 @@ class ComputeAPITestCase(BaseTestCase):
instance = db.instance_get_by_uuid(self.context, instance_uuid)
self.assertEqual(instance['task_state'], task_states.REBUILDING)
+ def test_rebuild_with_deleted_image(self):
+ # If we're given a deleted image by glance, we should not be able to
+ # rebuild from it
+ instance = jsonutils.to_primitive(
+ self._create_fake_instance(params={'image_ref': '1'}))
+
+ self.fake_image['name'] = 'fake_name'
+ self.fake_image['status'] = 'DELETED'
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ expected_message = (
+ exception.ImageNotActive.message % {'image_id':
+ self.fake_image['id']})
+ with testtools.ExpectedException(exception.ImageNotActive,
+ expected_message):
+ self.compute_api.rebuild(self.context, instance,
+ self.fake_image['id'], 'new_password')
+
+ def test_rebuild_with_too_little_ram(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_flavor',
+ fake_extract_flavor)
+
+ self.fake_image['min_ram'] = 128
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ self.assertRaises(exception.InstanceTypeMemoryTooSmall,
+ self.compute_api.rebuild, self.context,
+ instance, self.fake_image['id'], 'new_password')
+
+ # Reduce image memory requirements and make sure it works
+ self.fake_image['min_ram'] = 64
+
+ 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_little_disk(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_flavor',
+ fake_extract_flavor)
+
+ self.fake_image['min_disk'] = 2
+ 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 disk requirements and make sure it works
+ self.fake_image['min_disk'] = 1
+
+ self.compute_api.rebuild(self.context,
+ instance, self.fake_image['id'], 'new_password')
+ db.instance_destroy(self.context, instance['uuid'])
+
+ def test_rebuild_with_just_enough_ram_and_disk(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_flavor',
+ fake_extract_flavor)
+
+ self.fake_image['min_ram'] = 64
+ self.fake_image['min_disk'] = 1
+ 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_no_ram_and_disk_reqs(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_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_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'])
+
def _stub_out_reboot(self, device_name):
def fake_reboot_instance(rpcapi, context, instance,
block_device_info,
@@ -5629,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,
@@ -5706,7 +6147,9 @@ class ComputeAPITestCase(BaseTestCase):
def fake_get_instance_bdms(*args, **kwargs):
return [{'device_name': '/dev/vda',
- 'volume_id':'bf0b6b00-a20c-11e2-9e96-0800200c9a66'}]
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ 'volume_id': 'bf0b6b00-a20c-11e2-9e96-0800200c9a66'}]
self.stubs.Set(self.compute_api, 'get_instance_bdms',
fake_get_instance_bdms)
@@ -5790,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']
@@ -6018,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(),
@@ -6137,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)
@@ -6156,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'])
@@ -6198,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,
@@ -6742,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
@@ -6759,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',
@@ -6800,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
@@ -6818,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)
@@ -6831,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)
@@ -6845,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')
@@ -6854,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')
@@ -6863,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'])
@@ -6964,7 +7477,9 @@ class ComputeAPITestCase(BaseTestCase):
def fake_get_instance_bdms(*args, **kwargs):
return [{'device_name': '/dev/vda',
- 'volume_id':'bf0b6b00-a20c-11e2-9e96-0800200c9a66'}]
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ 'volume_id': 'bf0b6b00-a20c-11e2-9e96-0800200c9a66'}]
self.stubs.Set(self.compute_api, 'get_instance_bdms',
fake_get_instance_bdms)
@@ -7263,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
@@ -7555,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
@@ -7935,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
@@ -8069,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
@@ -8083,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
@@ -8104,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
@@ -8409,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):
@@ -8516,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')
@@ -8752,3 +9148,146 @@ class ComputeInjectedFilesTestCase(BaseTestCase):
self.compute.run_instance(self.context, self.instance,
injected_files=expected)
+
+
+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
+ # handling
+ def setUp(self):
+ super(CheckConfigDriveTestCase, self).setUp()
+ self.compute_api = compute.API()
+ self.context = context.RequestContext(
+ 'fake_user_id', 'fake_project_id')
+
+ self.called = called = {'show': False}
+
+ def fake_get_remote_image_service(context, image_id):
+ class FakeGlance(object):
+ def show(self, context, image_id):
+ called['show'] = True
+
+ return FakeGlance(), image_id
+
+ self.stubs.Set(glance, 'get_remote_image_service',
+ fake_get_remote_image_service)
+
+ def tearDown(self):
+ self.stubs.UnsetAll()
+ super(CheckConfigDriveTestCase, self).tearDown()
+
+ def assertCheck(self, expected, config_drive):
+ self.assertEqual(expected,
+ self.compute_api._check_config_drive(
+ self.context, config_drive))
+
+ def test_value_is_none(self):
+ self.assertFalse(self.called['show'])
+ self.assertCheck((None, None), None)
+ self.assertFalse(self.called['show'])
+
+ def test_bool_string_or_id(self):
+ self.assertCheck((None, True), "true")
+ self.assertCheck((None, True), 1)
+ self.assertCheck((None, True), 't')
+
+ def test_value_is_image_id(self):
+ 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_multiple_nodes.py b/nova/tests/compute/test_multiple_nodes.py
index c44d9974e..b9a17cefe 100644
--- a/nova/tests/compute/test_multiple_nodes.py
+++ b/nova/tests/compute/test_multiple_nodes.py
@@ -97,7 +97,7 @@ class MultiNodeComputeTestCase(BaseTestCase):
'memory_mb': 131072,
'current_workload': 0,
'vcpus': 16,
- 'cpu_info':'ppc64,powervm,3940',
+ 'cpu_info': 'ppc64,powervm,3940',
'running_vms': 0,
'free_disk_gb': 259,
'service_id': 7,
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/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 3780fc7cf..03896ee3a 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
@@ -315,15 +321,9 @@ 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_all_hung_in_rebooting(self):
- self.mox.StubOutWithMock(db, 'instance_get_all_hung_in_rebooting')
- db.instance_get_all_hung_in_rebooting(self.context, 123)
- self.mox.ReplayAll()
- self.conductor.instance_get_all_hung_in_rebooting(self.context, 123)
-
def test_instance_get_active_by_window_joined(self):
self.mox.StubOutWithMock(db, 'instance_get_active_by_window_joined')
db.instance_get_active_by_window_joined(self.context, 'fake-begin',
@@ -357,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()
@@ -374,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(
@@ -952,18 +982,6 @@ class ConductorAPITestCase(_BaseTestCase, test.TestCase):
self.conductor.block_device_mapping_destroy_by_instance_and_volume(
self.context, fake_inst, 'fake-volume')
- def test_instance_get_all(self):
- self.mox.StubOutWithMock(db, 'instance_get_all_by_filters')
- db.instance_get_all(self.context)
- db.instance_get_all_by_filters(self.context, {'name': 'fake-inst'},
- 'updated_at', 'asc',
- columns_to_join=None)
- self.mox.ReplayAll()
- self.conductor.instance_get_all(self.context)
- self.conductor.instance_get_all_by_filters(self.context,
- {'name': 'fake-inst'},
- 'updated_at', 'asc')
-
def _test_stubbed(self, name, *args, **kwargs):
if args and isinstance(args[0], FakeContext):
ctxt = args[0]
@@ -1101,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):
@@ -1141,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 1239c4627..711f81e52 100644
--- a/nova/tests/test_db_api.py
+++ b/nova/tests/db/test_db_api.py
@@ -27,17 +27,24 @@ 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.schema import Table
+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
+from nova.db.sqlalchemy import models
+from nova.db.sqlalchemy import utils as db_utils
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
@@ -51,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()
@@ -58,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'}
@@ -90,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))
@@ -152,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:
@@ -162,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:
@@ -172,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=[])
@@ -183,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'])
@@ -219,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=[])
@@ -229,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'])
@@ -239,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'])
@@ -249,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))
@@ -261,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',
@@ -457,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
@@ -469,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']
@@ -1110,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()
@@ -1176,6 +1261,22 @@ class DbApiTestCase(DbTestCase):
_compare(bw_usages[2], expected_bw_usages[2])
timeutils.clear_time_override()
+ def _test_decorator_wraps_helper(self, decorator):
+ def test_func():
+ """Test docstring."""
+
+ decorated_func = decorator(test_func)
+
+ self.assertEquals(test_func.func_name, decorated_func.func_name)
+ self.assertEquals(test_func.__doc__, decorated_func.__doc__)
+ self.assertEquals(test_func.__module__, decorated_func.__module__)
+
+ def test_require_context_decorator_wraps_functions_properly(self):
+ self._test_decorator_wraps_helper(sqlalchemy_api.require_context)
+
+ def test_require_admin_context_decorator_wraps_functions_properly(self):
+ self._test_decorator_wraps_helper(sqlalchemy_api.require_admin_context)
+
def _get_fake_aggr_values():
return {'name': 'fake_aggregate'}
@@ -1215,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))
@@ -1226,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%'},
@@ -1460,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)
@@ -1472,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)
@@ -1589,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]))
@@ -1694,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']:
@@ -1796,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])
@@ -1815,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['id'])
+ 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()
@@ -2366,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)
@@ -2702,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']
@@ -2723,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']
@@ -2749,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()
@@ -2830,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 = {}
@@ -2850,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'},
@@ -2923,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))
@@ -3067,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)
@@ -3155,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'),
@@ -3553,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)
@@ -3585,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:
@@ -3667,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)
@@ -3707,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()
@@ -3723,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)
@@ -3744,8 +4261,8 @@ class VirtualInterfaceTestCase(test.TestCase, ModelsObjectComparatorMixin):
self._create_virt_interface, {"uuid": vif['uuid']})
def test_virtual_interface_get(self):
- vifs = [self._create_virt_interface({'address':'a'}),
- self._create_virt_interface({'address':'b'})]
+ vifs = [self._create_virt_interface({'address': 'a'}),
+ self._create_virt_interface({'address': 'b'})]
for vif in vifs:
real_vif = db.virtual_interface_get(self.ctxt, vif['id'])
@@ -3759,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)
@@ -3930,6 +4458,201 @@ 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):
+ super(QuotaClassTestCase, self).setUp()
+ self.ctxt = context.get_admin_context()
+
+ def test_quota_class_get_default(self):
+ params = {
+ 'test_resource1': '10',
+ 'test_resource2': '20',
+ 'test_resource3': '30',
+ }
+ for res, limit in params.items():
+ db.quota_class_create(self.ctxt, 'default', res, limit)
+
+ defaults = db.quota_class_get_default(self.ctxt)
+ self.assertEqual(defaults, dict(class_name='default',
+ test_resource1=10,
+ 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):
def setUp(self):
@@ -3937,167 +4660,196 @@ class ArchiveTestCase(test.TestCase):
self.context = context.get_admin_context()
self.engine = get_engine()
self.conn = self.engine.connect()
- self.metadata = MetaData()
- self.metadata.bind = self.engine
- self.table1 = Table("instance_id_mappings",
- self.metadata,
- autoload=True)
- self.shadow_table1 = Table("shadow_instance_id_mappings",
- self.metadata,
- autoload=True)
- self.table2 = Table("dns_domains",
- self.metadata,
- autoload=True)
- self.shadow_table2 = Table("shadow_dns_domains",
- self.metadata,
- autoload=True)
- self.consoles = Table("consoles",
- self.metadata,
- autoload=True)
- self.console_pools = Table("console_pools",
- self.metadata,
- autoload=True)
- self.shadow_consoles = Table("shadow_consoles",
- self.metadata,
- autoload=True)
- self.shadow_console_pools = Table("shadow_console_pools",
- self.metadata,
- autoload=True)
+ self.instance_id_mappings = db_utils.get_table(self.engine,
+ "instance_id_mappings")
+ self.shadow_instance_id_mappings = db_utils.get_table(self.engine,
+ "shadow_instance_id_mappings")
+ self.dns_domains = db_utils.get_table(self.engine, "dns_domains")
+ self.shadow_dns_domains = db_utils.get_table(self.engine,
+ "shadow_dns_domains")
+ self.consoles = db_utils.get_table(self.engine, "consoles")
+ self.console_pools = db_utils.get_table(self.engine, "console_pools")
+ self.shadow_consoles = db_utils.get_table(self.engine,
+ "shadow_consoles")
+ self.shadow_console_pools = db_utils.get_table(self.engine,
+ "shadow_console_pools")
+ self.instances = db_utils.get_table(self.engine, "instances")
+ 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"])
+ self.uuid_tablenames_to_cleanup = set(["instance_id_mappings",
+ "instances"])
+ self.domain_tablenames_to_cleanup = set(["dns_domains"])
def tearDown(self):
super(ArchiveTestCase, self).tearDown()
- delete_statement1 = self.table1.delete(
- self.table1.c.uuid.in_(self.uuidstrs))
- self.conn.execute(delete_statement1)
- delete_statement2 = self.shadow_table1.delete(
- self.shadow_table1.c.uuid.in_(self.uuidstrs))
- self.conn.execute(delete_statement2)
- delete_statement3 = self.table2.delete(self.table2.c.domain.in_(
- self.uuidstrs))
- self.conn.execute(delete_statement3)
- delete_statement4 = self.shadow_table2.delete(
- self.shadow_table2.c.domain.in_(self.uuidstrs))
- self.conn.execute(delete_statement4)
- for table in [self.console_pools, self.consoles, self.shadow_consoles,
- self.shadow_console_pools]:
- delete_statement5 = table.delete(table.c.id.in_(self.ids))
- self.conn.execute(delete_statement5)
+ for tablename in self.id_tablenames_to_cleanup:
+ for name in [tablename, "shadow_" + tablename]:
+ table = db_utils.get_table(self.engine, name)
+ del_statement = table.delete(table.c.id.in_(self.ids))
+ self.conn.execute(del_statement)
+ for tablename in self.uuid_tablenames_to_cleanup:
+ for name in [tablename, "shadow_" + tablename]:
+ table = db_utils.get_table(self.engine, name)
+ del_statement = table.delete(table.c.uuid.in_(self.uuidstrs))
+ self.conn.execute(del_statement)
+ for tablename in self.domain_tablenames_to_cleanup:
+ for name in [tablename, "shadow_" + tablename]:
+ table = db_utils.get_table(self.engine, name)
+ 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:
- insert_statement = self.table1.insert().values(uuid=uuidstr)
- self.conn.execute(insert_statement)
+ ins_stmt = self.instance_id_mappings.insert().values(uuid=uuidstr)
+ self.conn.execute(ins_stmt)
# Set 4 to deleted
- update_statement = self.table1.update().\
- where(self.table1.c.uuid.in_(self.uuidstrs[:4]))\
+ update_statement = self.instance_id_mappings.update().\
+ where(self.instance_id_mappings.c.uuid.in_(self.uuidstrs[:4]))\
.values(deleted=1)
self.conn.execute(update_statement)
- query1 = select([self.table1]).where(self.table1.c.uuid.in_(
- self.uuidstrs))
- rows1 = self.conn.execute(query1).fetchall()
+ qiim = select([self.instance_id_mappings]).where(self.
+ instance_id_mappings.c.uuid.in_(self.uuidstrs))
+ rows = self.conn.execute(qiim).fetchall()
# Verify we have 6 in main
- self.assertEqual(len(rows1), 6)
- query2 = select([self.shadow_table1]).\
- where(self.shadow_table1.c.uuid.in_(self.uuidstrs))
- rows2 = self.conn.execute(query2).fetchall()
+ self.assertEqual(len(rows), 6)
+ qsiim = select([self.shadow_instance_id_mappings]).\
+ where(self.shadow_instance_id_mappings.c.uuid.in_(
+ self.uuidstrs))
+ rows = self.conn.execute(qsiim).fetchall()
# Verify we have 0 in shadow
- self.assertEqual(len(rows2), 0)
+ self.assertEqual(len(rows), 0)
# Archive 2 rows
db.archive_deleted_rows(self.context, max_rows=2)
- rows3 = self.conn.execute(query1).fetchall()
+ rows = self.conn.execute(qiim).fetchall()
# Verify we have 4 left in main
- self.assertEqual(len(rows3), 4)
- rows4 = self.conn.execute(query2).fetchall()
+ self.assertEqual(len(rows), 4)
+ rows = self.conn.execute(qsiim).fetchall()
# Verify we have 2 in shadow
- self.assertEqual(len(rows4), 2)
+ self.assertEqual(len(rows), 2)
# Archive 2 more rows
db.archive_deleted_rows(self.context, max_rows=2)
- rows5 = self.conn.execute(query1).fetchall()
+ rows = self.conn.execute(qiim).fetchall()
# Verify we have 2 left in main
- self.assertEqual(len(rows5), 2)
- rows6 = self.conn.execute(query2).fetchall()
+ self.assertEqual(len(rows), 2)
+ rows = self.conn.execute(qsiim).fetchall()
# Verify we have 4 in shadow
- self.assertEqual(len(rows6), 4)
+ self.assertEqual(len(rows), 4)
# Try to archive more, but there are no deleted rows left.
db.archive_deleted_rows(self.context, max_rows=2)
- rows7 = self.conn.execute(query1).fetchall()
+ rows = self.conn.execute(qiim).fetchall()
# Verify we still have 2 left in main
- self.assertEqual(len(rows7), 2)
- rows8 = self.conn.execute(query2).fetchall()
+ self.assertEqual(len(rows), 2)
+ rows = self.conn.execute(qsiim).fetchall()
# Verify we still have 4 in shadow
- self.assertEqual(len(rows8), 4)
-
- def test_archive_deleted_rows_for_table(self):
- tablename = "instance_id_mappings"
+ self.assertEqual(len(rows), 4)
+
+ def test_archive_deleted_rows_for_every_uuid_table(self):
+ tablenames = []
+ for model_class in models.__dict__.itervalues():
+ if hasattr(model_class, "__tablename__"):
+ tablenames.append(model_class.__tablename__)
+ tablenames.sort()
+ for tablename in tablenames:
+ ret = self._test_archive_deleted_rows_for_one_uuid_table(tablename)
+ if ret == 0:
+ self.uuid_tablenames_to_cleanup.add(tablename)
+
+ def _test_archive_deleted_rows_for_one_uuid_table(self, tablename):
+ """
+ :returns: 0 on success, 1 if no uuid column, 2 if insert failed
+ """
+ main_table = db_utils.get_table(self.engine, tablename)
+ if not hasattr(main_table.c, "uuid"):
+ # Not a uuid table, so skip it.
+ return 1
+ shadow_table = db_utils.get_table(self.engine, "shadow_" + tablename)
# Add 6 rows to table
for uuidstr in self.uuidstrs:
- insert_statement = self.table1.insert().values(uuid=uuidstr)
- self.conn.execute(insert_statement)
+ ins_stmt = main_table.insert().values(uuid=uuidstr)
+ try:
+ self.conn.execute(ins_stmt)
+ except IntegrityError:
+ # This table has constraints that require a table-specific
+ # insert, so skip it.
+ return 2
# Set 4 to deleted
- update_statement = self.table1.update().\
- where(self.table1.c.uuid.in_(self.uuidstrs[:4]))\
+ update_statement = main_table.update().\
+ where(main_table.c.uuid.in_(self.uuidstrs[:4]))\
.values(deleted=1)
self.conn.execute(update_statement)
- query1 = select([self.table1]).where(self.table1.c.uuid.in_(
+ qmt = select([main_table]).where(main_table.c.uuid.in_(
self.uuidstrs))
- rows1 = self.conn.execute(query1).fetchall()
+ rows = self.conn.execute(qmt).fetchall()
# Verify we have 6 in main
- self.assertEqual(len(rows1), 6)
- query2 = select([self.shadow_table1]).\
- where(self.shadow_table1.c.uuid.in_(self.uuidstrs))
- rows2 = self.conn.execute(query2).fetchall()
+ self.assertEqual(len(rows), 6)
+ qst = select([shadow_table]).\
+ where(shadow_table.c.uuid.in_(self.uuidstrs))
+ rows = self.conn.execute(qst).fetchall()
# Verify we have 0 in shadow
- self.assertEqual(len(rows2), 0)
+ self.assertEqual(len(rows), 0)
# Archive 2 rows
db.archive_deleted_rows_for_table(self.context, tablename, max_rows=2)
- rows3 = self.conn.execute(query1).fetchall()
# Verify we have 4 left in main
- self.assertEqual(len(rows3), 4)
- rows4 = self.conn.execute(query2).fetchall()
+ rows = self.conn.execute(qmt).fetchall()
+ self.assertEqual(len(rows), 4)
# Verify we have 2 in shadow
- self.assertEqual(len(rows4), 2)
+ rows = self.conn.execute(qst).fetchall()
+ self.assertEqual(len(rows), 2)
# Archive 2 more rows
db.archive_deleted_rows_for_table(self.context, tablename, max_rows=2)
- rows5 = self.conn.execute(query1).fetchall()
# Verify we have 2 left in main
- self.assertEqual(len(rows5), 2)
- rows6 = self.conn.execute(query2).fetchall()
+ rows = self.conn.execute(qmt).fetchall()
+ self.assertEqual(len(rows), 2)
# Verify we have 4 in shadow
- self.assertEqual(len(rows6), 4)
+ rows = self.conn.execute(qst).fetchall()
+ self.assertEqual(len(rows), 4)
# Try to archive more, but there are no deleted rows left.
db.archive_deleted_rows_for_table(self.context, tablename, max_rows=2)
- rows7 = self.conn.execute(query1).fetchall()
# Verify we still have 2 left in main
- self.assertEqual(len(rows7), 2)
- rows8 = self.conn.execute(query2).fetchall()
+ rows = self.conn.execute(qmt).fetchall()
+ self.assertEqual(len(rows), 2)
# Verify we still have 4 in shadow
- self.assertEqual(len(rows8), 4)
+ rows = self.conn.execute(qst).fetchall()
+ self.assertEqual(len(rows), 4)
+ return 0
def test_archive_deleted_rows_no_id_column(self):
uuidstr0 = self.uuidstrs[0]
- insert_statement = self.table2.insert().values(domain=uuidstr0)
- self.conn.execute(insert_statement)
- update_statement = self.table2.update().\
- where(self.table2.c.domain == uuidstr0).\
+ ins_stmt = self.dns_domains.insert().values(domain=uuidstr0)
+ self.conn.execute(ins_stmt)
+ update_statement = self.dns_domains.update().\
+ where(self.dns_domains.c.domain == uuidstr0).\
values(deleted=1)
self.conn.execute(update_statement)
- query1 = select([self.table2], self.table2.c.domain == uuidstr0)
- rows1 = self.conn.execute(query1).fetchall()
- self.assertEqual(len(rows1), 1)
- query2 = select([self.shadow_table2],
- self.shadow_table2.c.domain == uuidstr0)
- rows2 = self.conn.execute(query2).fetchall()
- self.assertEqual(len(rows2), 0)
+ qdd = select([self.dns_domains], self.dns_domains.c.domain ==
+ uuidstr0)
+ rows = self.conn.execute(qdd).fetchall()
+ self.assertEqual(len(rows), 1)
+ qsdd = select([self.shadow_dns_domains],
+ self.shadow_dns_domains.c.domain == uuidstr0)
+ rows = self.conn.execute(qsdd).fetchall()
+ self.assertEqual(len(rows), 0)
db.archive_deleted_rows(self.context, max_rows=1)
- rows3 = self.conn.execute(query1).fetchall()
- self.assertEqual(len(rows3), 0)
- rows4 = self.conn.execute(query2).fetchall()
- self.assertEqual(len(rows4), 1)
+ rows = self.conn.execute(qdd).fetchall()
+ self.assertEqual(len(rows), 0)
+ rows = self.conn.execute(qsdd).fetchall()
+ self.assertEqual(len(rows), 1)
def test_archive_deleted_rows_fk_constraint(self):
# consoles.pool_id depends on console_pools.id
@@ -4114,13 +4866,13 @@ class ArchiveTestCase(test.TestCase):
self.skipTest(
'sqlite version too old for reliable SQLA foreign_keys')
self.conn.execute("PRAGMA foreign_keys = ON")
- insert_statement = self.console_pools.insert().values(deleted=1)
- result = self.conn.execute(insert_statement)
+ ins_stmt = self.console_pools.insert().values(deleted=1)
+ result = self.conn.execute(ins_stmt)
id1 = result.inserted_primary_key[0]
self.ids.append(id1)
- insert_statement = self.consoles.insert().values(deleted=1,
+ ins_stmt = self.consoles.insert().values(deleted=1,
pool_id=id1)
- result = self.conn.execute(insert_statement)
+ result = self.conn.execute(ins_stmt)
id2 = result.inserted_primary_key[0]
self.ids.append(id2)
# The first try to archive console_pools should fail, due to FK.
@@ -4132,3 +4884,433 @@ class ArchiveTestCase(test.TestCase):
# Then archiving console_pools should work.
num = db.archive_deleted_rows_for_table(self.context, "console_pools")
self.assertEqual(num, 1)
+
+ def test_archive_deleted_rows_2_tables(self):
+ # Add 6 rows to each table
+ for uuidstr in self.uuidstrs:
+ ins_stmt = self.instance_id_mappings.insert().values(uuid=uuidstr)
+ self.conn.execute(ins_stmt)
+ ins_stmt2 = self.instances.insert().values(uuid=uuidstr)
+ self.conn.execute(ins_stmt2)
+ # Set 4 of each to deleted
+ update_statement = self.instance_id_mappings.update().\
+ where(self.instance_id_mappings.c.uuid.in_(self.uuidstrs[:4]))\
+ .values(deleted=1)
+ self.conn.execute(update_statement)
+ update_statement2 = self.instances.update().\
+ where(self.instances.c.uuid.in_(self.uuidstrs[:4]))\
+ .values(deleted=1)
+ self.conn.execute(update_statement2)
+ # Verify we have 6 in each main table
+ qiim = select([self.instance_id_mappings]).where(
+ self.instance_id_mappings.c.uuid.in_(self.uuidstrs))
+ rows = self.conn.execute(qiim).fetchall()
+ self.assertEqual(len(rows), 6)
+ qi = select([self.instances]).where(self.instances.c.uuid.in_(
+ self.uuidstrs))
+ rows = self.conn.execute(qi).fetchall()
+ self.assertEqual(len(rows), 6)
+ # Verify we have 0 in each shadow table
+ qsiim = select([self.shadow_instance_id_mappings]).\
+ where(self.shadow_instance_id_mappings.c.uuid.in_(
+ self.uuidstrs))
+ rows = self.conn.execute(qsiim).fetchall()
+ self.assertEqual(len(rows), 0)
+ qsi = select([self.shadow_instances]).\
+ where(self.shadow_instances.c.uuid.in_(self.uuidstrs))
+ rows = self.conn.execute(qsi).fetchall()
+ self.assertEqual(len(rows), 0)
+ # Archive 7 rows, which should be 4 in one table and 3 in the other.
+ db.archive_deleted_rows(self.context, max_rows=7)
+ # Verify we have 5 left in the two main tables combined
+ iim_rows = self.conn.execute(qiim).fetchall()
+ i_rows = self.conn.execute(qi).fetchall()
+ self.assertEqual(len(iim_rows) + len(i_rows), 5)
+ # Verify we have 7 in the two shadow tables combined.
+ siim_rows = self.conn.execute(qsiim).fetchall()
+ si_rows = self.conn.execute(qsi).fetchall()
+ self.assertEqual(len(siim_rows) + len(si_rows), 7)
+ # Archive the remaining deleted rows.
+ db.archive_deleted_rows(self.context, max_rows=1)
+ # Verify we have 4 total left in both main tables.
+ iim_rows = self.conn.execute(qiim).fetchall()
+ i_rows = self.conn.execute(qi).fetchall()
+ self.assertEqual(len(iim_rows) + len(i_rows), 4)
+ # Verify we have 8 in shadow
+ siim_rows = self.conn.execute(qsiim).fetchall()
+ si_rows = self.conn.execute(qsi).fetchall()
+ self.assertEqual(len(siim_rows) + len(si_rows), 8)
+ # Try to archive more, but there are no deleted rows left.
+ db.archive_deleted_rows(self.context, max_rows=500)
+ # Verify we have 4 total left in both main tables.
+ iim_rows = self.conn.execute(qiim).fetchall()
+ i_rows = self.conn.execute(qi).fetchall()
+ self.assertEqual(len(iim_rows) + len(i_rows), 4)
+ # Verify we have 8 in shadow
+ 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 d7ef3da2f..c73093d7d 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,302 @@ 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)
+
class TestBaremetalMigrations(BaseMigrationTestCase, CommonTestsMixIn):
"""Test sqlalchemy-migrate migrations."""
@@ -1339,7 +1637,7 @@ class TestBaremetalMigrations(BaseMigrationTestCase, CommonTestsMixIn):
super(TestBaremetalMigrations, self).__init__(*args, **kwargs)
self.DEFAULT_CONFIG_FILE = os.path.join(os.path.dirname(__file__),
- '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(
@@ -1425,3 +1723,35 @@ class TestBaremetalMigrations(BaseMigrationTestCase, CommonTestsMixIn):
rows = ifs.select().where(ifs.c.bm_node_id == 2).execute().fetchall()
self.assertEqual(len(rows), 0)
+
+ def _check_007(self, engine, data):
+ 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..b63d16555
--- /dev/null
+++ b/nova/tests/fake_instance.py
@@ -0,0 +1,40 @@
+# 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,
+ '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 3bec6beda..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": "",
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-FLV-DISABLED/flavor-detail-get-resp.json.tpl b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.json.tpl
index d1f78c08e..04083d063 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.json.tpl
@@ -2,7 +2,7 @@
"flavors": [
{
"OS-FLV-DISABLED:disabled": false,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml.tpl b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml.tpl
index 8d992e42d..5d73195fa 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-detail-get-resp.xml.tpl
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-DISABLED:disabled="False">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-DISABLED:disabled="False">
<atom:link href="%(host)s/v2/openstack/flavors/1" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json.tpl b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json.tpl
index cf5fb232a..a47af7b18 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.json.tpl
@@ -1,7 +1,7 @@
{
"flavor": {
"OS-FLV-DISABLED:disabled": false,
- "disk": 0,
+ "disk": 1,
"id": "%(flavor_id)s",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml.tpl b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml.tpl
index c7bdd1ca8..13908e2ac 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-DISABLED/flavor-show-get-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="%(flavor_id)s" OS-FLV-DISABLED:disabled="False">
+<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="%(flavor_id)s" OS-FLV-DISABLED:disabled="False">
<atom:link href="%(host)s/v2/openstack/flavors/%(flavor_id)s" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/%(flavor_id)s" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json.tpl b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json.tpl
index 3422de9f5..b86db0a46 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.json.tpl
@@ -1,7 +1,7 @@
{
"flavor": {
"OS-FLV-EXT-DATA:ephemeral": 0,
- "disk": 0,
+ "disk": 1,
"id": "%(flavor_id)s",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml.tpl b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml.tpl
index dc143010a..da45536c3 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-get-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="%(flavor_name)s" id="%(flavor_id)s" OS-FLV-EXT-DATA:ephemeral="0">
+<flavor xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="%(flavor_name)s" id="%(flavor_id)s" OS-FLV-EXT-DATA:ephemeral="0">
<atom:link href="%(host)s/v2/openstack/flavors/%(flavor_id)s" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/%(flavor_id)s" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json.tpl b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json.tpl
index 2c79efeaf..a798262f3 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.json.tpl
@@ -2,7 +2,7 @@
"flavors": [
{
"OS-FLV-EXT-DATA:ephemeral": 0,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml.tpl b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml.tpl
index 7108ebd79..5ba463188 100644
--- a/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/OS-FLV-EXT-DATA/flavors-extra-data-list-resp.xml.tpl
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-EXT-DATA:ephemeral="0">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" OS-FLV-EXT-DATA:ephemeral="0">
<atom:link href="%(host)s/v2/openstack/flavors/1" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
</flavor>
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 33b6a74b9..1fbe71a90 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": [],
@@ -417,6 +433,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": [],
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 9ca1739e5..f0a802f30 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>
@@ -156,6 +162,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>
diff --git a/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.json.tpl b/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.json.tpl
index bbd681e66..b68bc3c97 100644
--- a/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.json.tpl
@@ -2,7 +2,7 @@
"flavor": {
"OS-FLV-DISABLED:disabled": false,
"OS-FLV-EXT-DATA:ephemeral": 0,
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
@@ -21,4 +21,4 @@
"swap": "",
"vcpus": 1
}
-} \ No newline at end of file
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.xml.tpl
index 920b82e53..53f870ec4 100644
--- a/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/flavor-get-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1" name="m1.tiny" ram="512" vcpus="1" swap="" rxtx_factor="1.0" disk="0" id="1" os-flavor-access:is_public="True" OS-FLV-EXT-DATA:ephemeral="0" OS-FLV-DISABLED:disabled="False">
+<flavor xmlns:OS-FLV-DISABLED="http://docs.openstack.org/compute/ext/flavor_disabled/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-FLV-EXT-DATA="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1" name="m1.tiny" ram="512" vcpus="1" swap="" rxtx_factor="1.0" disk="1" id="1" os-flavor-access:is_public="True" OS-FLV-EXT-DATA:ephemeral="0" OS-FLV-DISABLED:disabled="False">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
</flavor>
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/flavor-get-resp.json.tpl b/nova/tests/integrated/api_samples/flavor-get-resp.json.tpl
index 86ff86fa1..723be2898 100644
--- a/nova/tests/integrated/api_samples/flavor-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/flavor-get-resp.json.tpl
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/flavor-get-resp.xml.tpl b/nova/tests/integrated/api_samples/flavor-get-resp.xml.tpl
index ca49884f3..5925c588d 100644
--- a/nova/tests/integrated/api_samples/flavor-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/flavor-get-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" name="m1.tiny" ram="512" vcpus="1" disk="0" id="1">
+<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" name="m1.tiny" ram="512" vcpus="1" disk="1" id="1">
<atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
<atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/flavors-list-resp.json.tpl b/nova/tests/integrated/api_samples/flavors-list-resp.json.tpl
index ab86d2a52..fb9a8ff1f 100644
--- a/nova/tests/integrated/api_samples/flavors-list-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/flavors-list-resp.json.tpl
@@ -71,4 +71,4 @@
"name": "m1.xlarge"
}
]
-} \ No newline at end of file
+}
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-flavor-access/flavor-access-detail-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl
index 711207d2d..b5f1eea54 100644
--- a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl
@@ -1,7 +1,7 @@
{
"flavors": [
{
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl
index cdef74cce..8ee66226a 100644
--- a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
<atom:link href="%(host)s/v2/openstack/flavors/1" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl
index 975f38661..2e991a4ce 100644
--- a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "%(flavor_id)s",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl
index f9a3ff178..ae18daba2 100644
--- a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="%(flavor_id)s" os-flavor-access:is_public="True">
+<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="%(flavor_id)s" os-flavor-access:is_public="True">
<atom:link href="%(host)s/v2/openstack/flavors/%(flavor_id)s" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/%(flavor_id)s" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json.tpl
index a7f3a1993..241cf7c80 100644
--- a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.json.tpl
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "%(flavor_id)s",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml.tpl
index 4feec740c..d461b443e 100644
--- a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-get-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
+<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
<atom:link href="%(host)s/v2/openstack/flavors/1" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json.tpl
index 5b27e1385..035c860c9 100644
--- a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.json.tpl
@@ -1,7 +1,7 @@
{
"flavors": [
{
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml.tpl
index fb2ee09e0..ee937b974 100644
--- a/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-rxtx/flavor-rxtx-list-resp.xml.tpl
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" rxtx_factor="1.0">
<atom:link href="%(host)s/v2/openstack/flavors/1" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.json.tpl
index be9afe012..9b7e57c8a 100644
--- a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.json.tpl
@@ -1,6 +1,6 @@
{
"flavor": {
- "disk": 0,
+ "disk": 1,
"id": "%(flavor_id)s",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.xml.tpl
index 53afae086..9375b14b5 100644
--- a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-get-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="%(flavor_name)s" id="%(flavor_id)s" swap="">
+<flavor xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="1" vcpus="1" ram="512" name="%(flavor_name)s" id="%(flavor_id)s" swap="">
<atom:link href="%(host)s/v2/openstack/flavors/%(flavor_id)s" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/%(flavor_id)s" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.json.tpl
index c46a1695d..1367e75de 100644
--- a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.json.tpl
@@ -1,7 +1,7 @@
{
"flavors": [
{
- "disk": 0,
+ "disk": 1,
"id": "1",
"links": [
{
diff --git a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.xml.tpl
index ced8e1779..7c9c589be 100644
--- a/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-flavor-swap/flavor-swap-list-resp.xml.tpl
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<flavors xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" swap="">
+ <flavor disk="1" vcpus="1" ram="512" name="m1.tiny" id="1" swap="">
<atom:link href="%(host)s/v2/openstack/flavors/1" rel="self"/>
<atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
</flavor>
diff --git a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json.tpl b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json.tpl
index 68092f353..a12dd7157 100644
--- a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json.tpl
+++ b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json.tpl
@@ -6,7 +6,7 @@
"flavor": "m1.tiny",
"hours": 1.0,
"instance_id": "%(uuid)s",
- "local_gb": 0,
+ "local_gb": 1,
"memory_mb": 512,
"name": "new-server-test",
"started_at": "%(timestamp)s",
@@ -20,7 +20,7 @@
"stop": "%(timestamp)s",
"tenant_id": "openstack",
"total_hours": 1.0,
- "total_local_gb_usage": 0.0,
+ "total_local_gb_usage": 1.0,
"total_memory_mb_usage": 512.0,
"total_vcpus_usage": 1.0
}
diff --git a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml.tpl b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml.tpl
index a8a065fa1..4a6882307 100644
--- a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.xml.tpl
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<tenant_usage>
<tenant_id>openstack</tenant_id>
- <total_local_gb_usage>0.0</total_local_gb_usage>
+ <total_local_gb_usage>1.0</total_local_gb_usage>
<total_vcpus_usage>1.0</total_vcpus_usage>
<total_memory_mb_usage>512.0</total_memory_mb_usage>
<total_hours>1.0</total_hours>
@@ -13,7 +13,7 @@
<name>new-server-test</name>
<hours>1.0</hours>
<memory_mb>512</memory_mb>
- <local_gb>0</local_gb>
+ <local_gb>1</local_gb>
<vcpus>1</vcpus>
<tenant_id>openstack</tenant_id>
<flavor>m1.tiny</flavor>
diff --git a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json.tpl b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json.tpl
index b33ccbfc2..082e6bc90 100644
--- a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json.tpl
+++ b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json.tpl
@@ -5,7 +5,7 @@
"stop": "%(timestamp)s",
"tenant_id": "openstack",
"total_hours": 1.0,
- "total_local_gb_usage": 0.0,
+ "total_local_gb_usage": 1.0,
"total_memory_mb_usage": 512.0,
"total_vcpus_usage": 1.0
}
diff --git a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml.tpl b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml.tpl
index 536e79738..4a2833da8 100644
--- a/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml.tpl
+++ b/nova/tests/integrated/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.xml.tpl
@@ -2,7 +2,7 @@
<tenant_usages>
<tenant_usage>
<tenant_id>openstack</tenant_id>
- <total_local_gb_usage>0.0</total_local_gb_usage>
+ <total_local_gb_usage>1.0</total_local_gb_usage>
<total_vcpus_usage>1.0</total_vcpus_usage>
<total_memory_mb_usage>512.0</total_memory_mb_usage>
<total_hours>1.0</total_hours>
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index 3f47474df..0d8c869f2 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -31,6 +31,7 @@ from nova.api.metadata import password
from nova.api.openstack.compute.contrib import coverage_ext
from nova.api.openstack.compute.contrib import fping
# 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
@@ -52,12 +53,13 @@ from nova.tests.api.openstack.compute.contrib import test_fping
from nova.tests.api.openstack.compute.contrib import test_networks
from nova.tests.api.openstack.compute.contrib import test_services
from nova.tests.api.openstack import fakes
-from nova.tests.baremetal.db import base as bm_db_base
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
+from nova.tests.virt.baremetal.db import base as bm_db_base
from nova import utils
from nova.volume import cinder
@@ -93,7 +95,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 +153,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
@@ -435,7 +439,7 @@ class VersionsSampleJsonTest(ApiSampleTestBase):
def test_versions_get(self):
response = self._do_get('', strip_version=True)
subs = self._get_regexes()
- return self._verify_response('versions-get-resp', subs, response, 200)
+ self._verify_response('versions-get-resp', subs, response, 200)
class VersionsSampleXmlTest(VersionsSampleJsonTest):
@@ -465,14 +469,14 @@ class ServersSampleJsonTest(ServersSampleBase):
subs['id'] = uuid
subs['hypervisor_hostname'] = r'[\w\.\-]+'
subs['mac_addr'] = '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'
- return self._verify_response('server-get-resp', subs, response, 200)
+ self._verify_response('server-get-resp', subs, response, 200)
def test_servers_list(self):
uuid = self._post_server()
response = self._do_get('servers')
subs = self._get_regexes()
subs['id'] = uuid
- return self._verify_response('servers-list-resp', subs, response, 200)
+ self._verify_response('servers-list-resp', subs, response, 200)
def test_servers_details(self):
uuid = self._post_server()
@@ -482,8 +486,7 @@ class ServersSampleJsonTest(ServersSampleBase):
subs['id'] = uuid
subs['hypervisor_hostname'] = r'[\w\.\-]+'
subs['mac_addr'] = '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'
- return self._verify_response('servers-details-resp', subs,
- response, 200)
+ self._verify_response('servers-details-resp', subs, response, 200)
class ServersSampleXmlTest(ServersSampleJsonTest):
@@ -515,7 +518,6 @@ class ServersMetadataJsonTest(ServersSampleBase):
'server-metadata-all-req',
subs)
self._verify_response('server-metadata-all-resp', subs, response, 200)
-
return uuid
def generalize_subs(self, subs, vanilla_regexes):
@@ -525,7 +527,7 @@ class ServersMetadataJsonTest(ServersSampleBase):
def test_metadata_put_all(self):
# Test setting all metadata for a server.
subs = {'value': 'Foo Value'}
- return self._create_and_set(subs)
+ self._create_and_set(subs)
def test_metadata_post_all(self):
# Test updating all metadata for a server.
@@ -552,16 +554,14 @@ class ServersMetadataJsonTest(ServersSampleBase):
response = self._do_put('servers/%s/metadata/foo' % uuid,
'server-metadata-req',
subs)
- return self._verify_response('server-metadata-resp', subs,
- response, 200)
+ self._verify_response('server-metadata-resp', subs, response, 200)
def test_metadata_get(self):
# Test getting an individual metadata item for a server.
subs = {'value': 'Foo Value'}
uuid = self._create_and_set(subs)
response = self._do_get('servers/%s/metadata/foo' % uuid)
- return self._verify_response('server-metadata-resp', subs,
- response, 200)
+ self._verify_response('server-metadata-resp', subs, response, 200)
def test_metadata_delete(self):
# Test deleting an individual metadata item for a server.
@@ -582,15 +582,14 @@ class ServersIpsJsonTest(ServersSampleBase):
uuid = self._post_server()
response = self._do_get('servers/%s/ips' % uuid)
subs = self._get_regexes()
- return self._verify_response('server-ips-resp', subs, response, 200)
+ self._verify_response('server-ips-resp', subs, response, 200)
def test_get_by_network(self):
# Test getting a server's IP information by network id.
uuid = self._post_server()
response = self._do_get('servers/%s/ips/private' % uuid)
subs = self._get_regexes()
- return self._verify_response('server-ips-network-resp', subs,
- response, 200)
+ self._verify_response('server-ips-network-resp', subs, response, 200)
class ServersIpsXmlTest(ServersIpsJsonTest):
@@ -603,8 +602,7 @@ class ExtensionsSampleJsonTest(ApiSampleTestBase):
def test_extensions_get(self):
response = self._do_get('extensions')
subs = self._get_regexes()
- return self._verify_response('extensions-get-resp', subs,
- response, 200)
+ self._verify_response('extensions-get-resp', subs, response, 200)
class ExtensionsSampleXmlTest(ExtensionsSampleJsonTest):
@@ -616,12 +614,12 @@ class FlavorsSampleJsonTest(ApiSampleTestBase):
def test_flavors_get(self):
response = self._do_get('flavors/1')
subs = self._get_regexes()
- return self._verify_response('flavor-get-resp', subs, response, 200)
+ self._verify_response('flavor-get-resp', subs, response, 200)
def test_flavors_list(self):
response = self._do_get('flavors')
subs = self._get_regexes()
- return self._verify_response('flavors-list-resp', subs, response, 200)
+ self._verify_response('flavors-list-resp', subs, response, 200)
class FlavorsSampleXmlTest(FlavorsSampleJsonTest):
@@ -634,34 +632,33 @@ class HostsSampleJsonTest(ApiSampleTestBase):
def test_host_startup(self):
response = self._do_get('os-hosts/%s/startup' % self.compute.host)
subs = self._get_regexes()
- return self._verify_response('host-get-startup', subs, response, 200)
+ self._verify_response('host-get-startup', subs, response, 200)
def test_host_reboot(self):
response = self._do_get('os-hosts/%s/reboot' % self.compute.host)
subs = self._get_regexes()
- return self._verify_response('host-get-reboot', subs, response, 200)
+ self._verify_response('host-get-reboot', subs, response, 200)
def test_host_shutdown(self):
response = self._do_get('os-hosts/%s/shutdown' % self.compute.host)
subs = self._get_regexes()
- return self._verify_response('host-get-shutdown', subs, response, 200)
+ self._verify_response('host-get-shutdown', subs, response, 200)
def test_host_maintenance(self):
response = self._do_put('os-hosts/%s' % self.compute.host,
'host-put-maintenance-req', {})
subs = self._get_regexes()
- return self._verify_response('host-put-maintenance-resp', subs,
- response, 200)
+ self._verify_response('host-put-maintenance-resp', subs, response, 200)
def test_host_get(self):
response = self._do_get('os-hosts/%s' % self.compute.host)
subs = self._get_regexes()
- return self._verify_response('host-get-resp', subs, response, 200)
+ self._verify_response('host-get-resp', subs, response, 200)
def test_hosts_list(self):
response = self._do_get('os-hosts')
subs = self._get_regexes()
- return self._verify_response('hosts-list-resp', subs, response, 200)
+ self._verify_response('hosts-list-resp', subs, response, 200)
class HostsSampleXmlTest(HostsSampleJsonTest):
@@ -681,8 +678,7 @@ class ImagesSampleJsonTest(ApiSampleTestBase):
# Get api sample of images get list request.
response = self._do_get('images')
subs = self._get_regexes()
- return self._verify_response('images-list-get-resp', subs,
- response, 200)
+ self._verify_response('images-list-get-resp', subs, response, 200)
def test_image_get(self):
# Get api sample of one single image details request.
@@ -690,14 +686,13 @@ class ImagesSampleJsonTest(ApiSampleTestBase):
response = self._do_get('images/%s' % image_id)
subs = self._get_regexes()
subs['image_id'] = image_id
- return self._verify_response('image-get-resp', subs, response, 200)
+ self._verify_response('image-get-resp', subs, response, 200)
def test_images_details(self):
# Get api sample of all images details request.
response = self._do_get('images/detail')
subs = self._get_regexes()
- return self._verify_response('images-details-get-resp', subs,
- response, 200)
+ self._verify_response('images-details-get-resp', subs, response, 200)
def test_image_metadata_get(self):
# Get api sample of an image metadata request.
@@ -705,8 +700,7 @@ class ImagesSampleJsonTest(ApiSampleTestBase):
response = self._do_get('images/%s/metadata' % image_id)
subs = self._get_regexes()
subs['image_id'] = image_id
- return self._verify_response('image-metadata-get-resp', subs,
- response, 200)
+ self._verify_response('image-metadata-get-resp', subs, response, 200)
def test_image_metadata_post(self):
# Get api sample to update metadata of an image metadata request.
@@ -715,8 +709,7 @@ class ImagesSampleJsonTest(ApiSampleTestBase):
'images/%s/metadata' % image_id,
'image-metadata-post-req', {})
subs = self._get_regexes()
- return self._verify_response('image-metadata-post-resp', subs,
- response, 200)
+ self._verify_response('image-metadata-post-resp', subs, response, 200)
def test_image_metadata_put(self):
# Get api sample of image metadata put request.
@@ -724,8 +717,7 @@ class ImagesSampleJsonTest(ApiSampleTestBase):
response = self._do_put('images/%s/metadata' % image_id,
'image-metadata-put-req', {})
subs = self._get_regexes()
- return self._verify_response('image-metadata-put-resp', subs,
- response, 200)
+ self._verify_response('image-metadata-put-resp', subs, response, 200)
def test_image_meta_key_get(self):
# Get api sample of an image metadata key request.
@@ -733,7 +725,7 @@ class ImagesSampleJsonTest(ApiSampleTestBase):
key = "kernel_id"
response = self._do_get('images/%s/metadata/%s' % (image_id, key))
subs = self._get_regexes()
- return self._verify_response('image-meta-key-get', subs, response, 200)
+ self._verify_response('image-meta-key-get', subs, response, 200)
def test_image_meta_key_put(self):
# Get api sample of image metadata key put request.
@@ -742,8 +734,7 @@ class ImagesSampleJsonTest(ApiSampleTestBase):
response = self._do_put('images/%s/metadata/%s' % (image_id, key),
'image-meta-key-put-req', {})
subs = self._get_regexes()
- return self._verify_response('image-meta-key-put-resp', subs,
- response, 200)
+ self._verify_response('image-meta-key-put-resp', subs, response, 200)
class ImagesSampleXmlTest(ImagesSampleJsonTest):
@@ -754,7 +745,7 @@ class LimitsSampleJsonTest(ApiSampleTestBase):
def test_limits_get(self):
response = self._do_get('limits')
subs = self._get_regexes()
- return self._verify_response('limit-get-resp', subs, response, 200)
+ self._verify_response('limit-get-resp', subs, response, 200)
class LimitsSampleXmlTest(LimitsSampleJsonTest):
@@ -800,8 +791,7 @@ class CoverageExtJsonTests(ApiSampleTestBase):
response = self._do_post('os-coverage/action',
'coverage-stop-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('coverage-stop-post-resp',
- subs, response, 200)
+ self._verify_response('coverage-stop-post-resp', subs, response, 200)
def test_report_coverage(self):
# Generate a coverage report.
@@ -812,8 +802,7 @@ class CoverageExtJsonTests(ApiSampleTestBase):
response = self._do_post('os-coverage/action',
'coverage-report-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('coverage-report-post-resp',
- subs, response, 200)
+ self._verify_response('coverage-report-post-resp', subs, response, 200)
def test_xml_report_coverage(self):
subs = {
@@ -823,8 +812,8 @@ class CoverageExtJsonTests(ApiSampleTestBase):
response = self._do_post('os-coverage/action',
'coverage-xml-report-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('coverage-xml-report-post-resp',
- subs, response, 200)
+ self._verify_response('coverage-xml-report-post-resp',
+ subs, response, 200)
class CoverageExtXmlTests(CoverageExtJsonTests):
@@ -840,7 +829,7 @@ class ServersActionsJsonTest(ServersSampleBase):
subs)
if resp_tpl:
subs.update(self._get_regexes())
- return self._verify_response(resp_tpl, subs, response, code)
+ self._verify_response(resp_tpl, subs, response, code)
else:
self.assertEqual(response.status, code)
self.assertEqual(response.read(), "")
@@ -946,7 +935,7 @@ class UserDataJsonTest(ApiSampleTestBase):
response = self._do_post('servers', 'userdata-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('userdata-post-resp', subs, response, 202)
+ self._verify_response('userdata-post-resp', subs, response, 202)
class UserDataXmlTest(UserDataJsonTest):
@@ -973,14 +962,14 @@ class FlavorsExtraDataJsonTest(ApiSampleTestBase):
'flavor_name': 'm1.tiny'
}
subs.update(self._get_regexes())
- return self._verify_response('flavors-extra-data-get-resp', subs,
- response, 200)
+ self._verify_response('flavors-extra-data-get-resp',
+ subs, response, 200)
def test_flavors_extra_data_list(self):
response = self._do_get('flavors/detail')
subs = self._get_regexes()
- return self._verify_response('flavors-extra-data-list-resp', subs,
- response, 200)
+ self._verify_response('flavors-extra-data-list-resp',
+ subs, response, 200)
def test_flavors_extra_data_create(self):
subs = {
@@ -991,8 +980,8 @@ class FlavorsExtraDataJsonTest(ApiSampleTestBase):
'flavors-extra-data-post-req',
subs)
subs.update(self._get_regexes())
- return self._verify_response('flavors-extra-data-post-resp',
- subs, response, 200)
+ self._verify_response('flavors-extra-data-post-resp',
+ subs, response, 200)
class FlavorsExtraDataXmlTest(FlavorsExtraDataJsonTest):
@@ -1019,14 +1008,12 @@ class FlavorRxtxJsonTest(ApiSampleTestBase):
'flavor_name': 'm1.tiny'
}
subs.update(self._get_regexes())
- return self._verify_response('flavor-rxtx-get-resp', subs,
- response, 200)
+ self._verify_response('flavor-rxtx-get-resp', subs, response, 200)
def test_flavors_rxtx_list(self):
response = self._do_get('flavors/detail')
subs = self._get_regexes()
- return self._verify_response('flavor-rxtx-list-resp', subs,
- response, 200)
+ self._verify_response('flavor-rxtx-list-resp', subs, response, 200)
def test_flavors_rxtx_create(self):
subs = {
@@ -1037,8 +1024,7 @@ class FlavorRxtxJsonTest(ApiSampleTestBase):
'flavor-rxtx-post-req',
subs)
subs.update(self._get_regexes())
- return self._verify_response('flavor-rxtx-post-resp',
- subs, response, 200)
+ self._verify_response('flavor-rxtx-post-resp', subs, response, 200)
class FlavorRxtxXmlTest(FlavorRxtxJsonTest):
@@ -1065,14 +1051,12 @@ class FlavorSwapJsonTest(ApiSampleTestBase):
'flavor_name': 'm1.tiny'
}
subs.update(self._get_regexes())
- return self._verify_response('flavor-swap-get-resp', subs,
- response, 200)
+ self._verify_response('flavor-swap-get-resp', subs, response, 200)
def test_flavor_swap_list(self):
response = self._do_get('flavors/detail')
subs = self._get_regexes()
- return self._verify_response('flavor-swap-list-resp', subs,
- response, 200)
+ self._verify_response('flavor-swap-list-resp', subs, response, 200)
def test_flavor_swap_create(self):
subs = {
@@ -1083,8 +1067,7 @@ class FlavorSwapJsonTest(ApiSampleTestBase):
'flavor-swap-post-req',
subs)
subs.update(self._get_regexes())
- return self._verify_response('flavor-swap-post-resp',
- subs, response, 200)
+ self._verify_response('flavor-swap-post-resp', subs, response, 200)
class FlavorSwapXmlTest(FlavorSwapJsonTest):
@@ -1110,8 +1093,8 @@ class SecurityGroupsSampleJsonTest(ServersSampleBase):
subs = {
'group_name': 'test'
}
- return self._do_post('servers/%s/action' % uuid,
- 'security-group-add-post-req', subs)
+ return self._do_post('servers/%s/action' % uuid,
+ 'security-group-add-post-req', subs)
def test_security_group_create(self):
response = self._create_security_group()
@@ -1123,24 +1106,23 @@ class SecurityGroupsSampleJsonTest(ServersSampleBase):
# Get api sample of security groups get list request.
response = self._do_get('os-security-groups')
subs = self._get_regexes()
- return self._verify_response('security-groups-list-get-resp',
- subs, response, 200)
+ self._verify_response('security-groups-list-get-resp',
+ subs, response, 200)
def test_security_groups_get(self):
# Get api sample of security groups get request.
security_group_id = '1'
response = self._do_get('os-security-groups/%s' % security_group_id)
subs = self._get_regexes()
- return self._verify_response('security-groups-get-resp',
- subs, response, 200)
+ self._verify_response('security-groups-get-resp', subs, response, 200)
def test_security_groups_list_server(self):
# Get api sample of security groups for a specific server.
uuid = self._post_server()
response = self._do_get('servers/%s/os-security-groups' % uuid)
subs = self._get_regexes()
- return self._verify_response('server-security-groups-list-resp',
- subs, response, 200)
+ self._verify_response('server-security-groups-list-resp',
+ subs, response, 200)
def test_security_groups_add(self):
self._create_security_group()
@@ -1175,21 +1157,21 @@ class SecurityGroupDefaultRulesSampleJsonTest(ServersSampleBase):
response = self._do_post('os-security-group-default-rules',
'security-group-default-rules-create-req',
{})
- return self._verify_response(
- 'security-group-default-rules-create-resp', {}, response, 200)
+ self._verify_response('security-group-default-rules-create-resp',
+ {}, response, 200)
def test_security_group_default_rules_list(self):
self.test_security_group_default_rules_create()
response = self._do_get('os-security-group-default-rules')
- return self._verify_response('security-group-default-rules-list-resp',
- {}, response, 200)
+ self._verify_response('security-group-default-rules-list-resp',
+ {}, response, 200)
def test_security_group_default_rules_show(self):
self.test_security_group_default_rules_create()
rule_id = '1'
response = self._do_get('os-security-group-default-rules/%s' % rule_id)
- return self._verify_response('security-group-default-rules-show-resp',
- {}, response, 200)
+ self._verify_response('security-group-default-rules-show-resp',
+ {}, response, 200)
class SecurityGroupDefaultRulesSampleXmlTest(
@@ -1209,8 +1191,7 @@ class SchedulerHintsJsonTest(ApiSampleTestBase):
response = self._do_post('servers', 'scheduler-hints-post-req',
hints)
subs = self._get_regexes()
- return self._verify_response('scheduler-hints-post-resp', subs,
- response, 202)
+ self._verify_response('scheduler-hints-post-resp', subs, response, 202)
class SchedulerHintsXmlTest(SchedulerHintsJsonTest):
@@ -1227,8 +1208,7 @@ class ConsoleOutputSampleJsonTest(ServersSampleBase):
'console-output-post-req',
{'action': 'os-getConsoleOutput'})
subs = self._get_regexes()
- return self._verify_response('console-output-post-resp',
- subs, response, 200)
+ self._verify_response('console-output-post-resp', subs, response, 200)
class ConsoleOutputSampleXmlTest(ConsoleOutputSampleJsonTest):
@@ -1249,8 +1229,7 @@ class ExtendedServerAttributesJsonTest(ServersSampleBase):
subs['id'] = uuid
subs['instance_name'] = 'instance-\d{8}'
subs['hypervisor_hostname'] = r'[\w\.\-]+'
- return self._verify_response('server-get-resp',
- subs, response, 200)
+ self._verify_response('server-get-resp', subs, response, 200)
def test_detail(self):
uuid = self._post_server()
@@ -1261,8 +1240,7 @@ class ExtendedServerAttributesJsonTest(ServersSampleBase):
subs['id'] = uuid
subs['instance_name'] = 'instance-\d{8}'
subs['hypervisor_hostname'] = r'[\w\.\-]+'
- return self._verify_response('servers-detail-resp',
- subs, response, 200)
+ self._verify_response('servers-detail-resp', subs, response, 200)
class ExtendedServerAttributesXmlTest(ExtendedServerAttributesJsonTest):
@@ -1307,8 +1285,8 @@ class FloatingIpsJsonTest(ApiSampleTestBase):
response = self._do_get('os-floating-ips')
subs = self._get_regexes()
- return self._verify_response('floating-ips-list-empty-resp',
- subs, response, 200)
+ self._verify_response('floating-ips-list-empty-resp',
+ subs, response, 200)
def test_floating_ips_list(self):
self._do_post('os-floating-ips',
@@ -1320,8 +1298,8 @@ class FloatingIpsJsonTest(ApiSampleTestBase):
response = self._do_get('os-floating-ips')
subs = self._get_regexes()
- return self._verify_response('floating-ips-list-resp',
- subs, response, 200)
+ self._verify_response('floating-ips-list-resp',
+ subs, response, 200)
def test_floating_ips_create_nopool(self):
response = self._do_post('os-floating-ips',
@@ -1336,8 +1314,7 @@ class FloatingIpsJsonTest(ApiSampleTestBase):
'floating-ips-create-req',
{"pool": CONF.default_floating_pool})
subs = self._get_regexes()
- self._verify_response('floating-ips-create-resp',
- subs, response, 200)
+ self._verify_response('floating-ips-create-resp', subs, response, 200)
def test_floating_ips_get(self):
self.test_floating_ips_create()
@@ -1345,8 +1322,7 @@ class FloatingIpsJsonTest(ApiSampleTestBase):
# but it would be better if we could get this from the create
response = self._do_get('os-floating-ips/%d' % 1)
subs = self._get_regexes()
- self._verify_response('floating-ips-create-resp',
- subs, response, 200)
+ self._verify_response('floating-ips-create-resp', subs, response, 200)
def test_floating_ips_delete(self):
self.test_floating_ips_create()
@@ -1407,14 +1383,14 @@ class FloatingIpsBulkJsonTest(ApiSampleTestBase):
def test_floating_ips_bulk_list(self):
response = self._do_get('os-floating-ips-bulk')
subs = self._get_regexes()
- return self._verify_response('floating-ips-bulk-list-resp', subs,
- response, 200)
+ self._verify_response('floating-ips-bulk-list-resp',
+ subs, response, 200)
def test_floating_ips_bulk_list_by_host(self):
response = self._do_get('os-floating-ips-bulk/testHost')
subs = self._get_regexes()
- return self._verify_response('floating-ips-bulk-list-by-host-resp',
- subs, response, 200)
+ self._verify_response('floating-ips-bulk-list-by-host-resp',
+ subs, response, 200)
def test_floating_ips_bulk_create(self):
response = self._do_post('os-floating-ips-bulk',
@@ -1423,16 +1399,16 @@ class FloatingIpsBulkJsonTest(ApiSampleTestBase):
"pool": CONF.default_floating_pool,
"interface": CONF.public_interface})
subs = self._get_regexes()
- return self._verify_response('floating-ips-bulk-create-resp', subs,
- response, 200)
+ self._verify_response('floating-ips-bulk-create-resp', subs,
+ response, 200)
def test_floating_ips_bulk_delete(self):
response = self._do_put('os-floating-ips-bulk/delete',
'floating-ips-bulk-delete-req',
{"ip_range": "192.168.1.0/24"})
subs = self._get_regexes()
- return self._verify_response('floating-ips-bulk-delete-resp', subs,
- response, 200)
+ self._verify_response('floating-ips-bulk-delete-resp', subs,
+ response, 200)
class FloatingIpsBulkXmlTest(FloatingIpsBulkJsonTest):
@@ -1482,7 +1458,7 @@ class KeyPairsSampleJsonTest(ApiSampleTestBase):
response = self._do_get('os-keypairs')
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
- return self._verify_response('keypairs-get-resp', subs, response, 200)
+ self._verify_response('keypairs-get-resp', subs, response, 200)
class KeyPairsSampleXmlTest(KeyPairsSampleJsonTest):
@@ -1601,8 +1577,7 @@ class CloudPipeSampleJsonTest(ApiSampleTestBase):
subs = self._get_regexes()
subs.update(project)
subs['image_id'] = CONF.vpn_image_id
- return self._verify_response('cloud-pipe-get-resp', subs,
- response, 200)
+ self._verify_response('cloud-pipe-get-resp', subs, response, 200)
class CloudPipeSampleXmlTest(CloudPipeSampleJsonTest):
@@ -1710,7 +1685,7 @@ class AgentsJsonTest(ApiSampleTestBase):
'md5hash': 'add6bb58e139be103324d04d82d8f545',
'agent_id': 1
}
- return self._verify_response('agents-get-resp', project, response, 200)
+ self._verify_response('agents-get-resp', project, response, 200)
def test_agent_update(self):
# Update an existing agent build.
@@ -1721,8 +1696,7 @@ class AgentsJsonTest(ApiSampleTestBase):
response = self._do_put('os-agents/%s' % agent_id,
'agent-update-put-req', subs)
subs['agent_id'] = 1
- return self._verify_response('agent-update-put-resp', subs,
- response, 200)
+ self._verify_response('agent-update-put-resp', subs, response, 200)
def test_agent_delete(self):
# Deletes an existing agent build.
@@ -1811,8 +1785,7 @@ class FixedIpJsonTest(ApiSampleTestBase):
'hostname': 'openstack',
'host': 'host',
'address': '192.168.1.1'}
- return self._verify_response('fixedips-get-resp', project,
- response, 200)
+ self._verify_response('fixedips-get-resp', project, response, 200)
class FixedIpXmlTest(FixedIpJsonTest):
@@ -1829,22 +1802,20 @@ class AggregatesSampleJsonTest(ServersSampleBase):
}
response = self._do_post('os-aggregates', 'aggregate-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('aggregate-post-resp', subs,
- response, 200)
+ return self._verify_response('aggregate-post-resp',
+ subs, response, 200)
def test_list_aggregates(self):
self.test_aggregate_create()
response = self._do_get('os-aggregates')
subs = self._get_regexes()
- return self._verify_response('aggregates-list-get-resp', subs,
- response, 200)
+ self._verify_response('aggregates-list-get-resp', subs, response, 200)
def test_aggregate_get(self):
agg_id = self.test_aggregate_create()
response = self._do_get('os-aggregates/%s' % agg_id)
subs = self._get_regexes()
- return self._verify_response('aggregates-get-resp', subs,
- response, 200)
+ self._verify_response('aggregates-get-resp', subs, response, 200)
def test_add_metadata(self):
agg_id = self.test_aggregate_create()
@@ -1852,8 +1823,8 @@ class AggregatesSampleJsonTest(ServersSampleBase):
'aggregate-metadata-post-req',
{'action': 'set_metadata'})
subs = self._get_regexes()
- return self._verify_response('aggregates-metadata-post-resp', subs,
- response, 200)
+ self._verify_response('aggregates-metadata-post-resp', subs,
+ response, 200)
def test_add_host(self):
aggregate_id = self.test_aggregate_create()
@@ -1863,8 +1834,8 @@ class AggregatesSampleJsonTest(ServersSampleBase):
response = self._do_post('os-aggregates/%s/action' % aggregate_id,
'aggregate-add-host-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('aggregates-add-host-post-resp', subs,
- response, 200)
+ self._verify_response('aggregates-add-host-post-resp', subs,
+ response, 200)
def test_remove_host(self):
self.test_add_host()
@@ -1874,16 +1845,16 @@ class AggregatesSampleJsonTest(ServersSampleBase):
response = self._do_post('os-aggregates/1/action',
'aggregate-remove-host-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('aggregates-remove-host-post-resp',
- subs, response, 200)
+ self._verify_response('aggregates-remove-host-post-resp',
+ subs, response, 200)
def test_update_aggregate(self):
aggregate_id = self.test_aggregate_create()
response = self._do_put('os-aggregates/%s' % aggregate_id,
'aggregate-update-post-req', {})
subs = self._get_regexes()
- return self._verify_response('aggregate-update-post-resp',
- subs, response, 200)
+ self._verify_response('aggregate-update-post-resp',
+ subs, response, 200)
class AggregatesSampleXmlTest(AggregatesSampleJsonTest):
@@ -1898,14 +1869,12 @@ class CertificatesSamplesJsonTest(ApiSampleTestBase):
response = self._do_post('os-certificates',
'certificate-create-req', {})
subs = self._get_regexes()
- return self._verify_response('certificate-create-resp', subs,
- response, 200)
+ self._verify_response('certificate-create-resp', subs, response, 200)
def test_get_root_certificate(self):
response = self._do_get('os-certificates/root')
subs = self._get_regexes()
- return self._verify_response('certificate-get-root-resp', subs,
- response, 200)
+ self._verify_response('certificate-get-root-resp', subs, response, 200)
class CertificatesSamplesXmlTest(CertificatesSamplesJsonTest):
@@ -1920,8 +1889,7 @@ class UsedLimitsSamplesJsonTest(ApiSampleTestBase):
# Get api sample to used limits.
response = self._do_get('limits')
subs = self._get_regexes()
- return self._verify_response('usedlimits-get-resp', subs,
- response, 200)
+ self._verify_response('usedlimits-get-resp', subs, response, 200)
class UsedLimitsSamplesXmlTest(UsedLimitsSamplesJsonTest):
@@ -1960,8 +1928,7 @@ class MultipleCreateJsonTest(ServersSampleBase):
}
response = self._do_post('servers', 'multiple-create-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('multiple-create-post-resp', subs,
- response, 202)
+ self._verify_response('multiple-create-post-resp', subs, response, 202)
def test_multiple_create_without_reservation_id(self):
subs = {
@@ -1973,8 +1940,8 @@ class MultipleCreateJsonTest(ServersSampleBase):
response = self._do_post('servers', 'multiple-create-no-resv-post-req',
subs)
subs.update(self._get_regexes())
- return self._verify_response('multiple-create-no-resv-post-resp', subs,
- response, 202)
+ self._verify_response('multiple-create-no-resv-post-resp', subs,
+ response, 202)
class MultipleCreateXmlTest(MultipleCreateJsonTest):
@@ -2007,8 +1974,7 @@ class ServicesJsonTest(ApiSampleTestBase):
'status': 'disabled',
'state': 'up'}
subs.update(self._get_regexes())
- return self._verify_response('services-list-get-resp',
- subs, response, 200)
+ self._verify_response('services-list-get-resp', subs, response, 200)
def test_service_enable(self):
"""Enable an existing agent build."""
@@ -2018,8 +1984,7 @@ class ServicesJsonTest(ApiSampleTestBase):
'service-enable-put-req', subs)
subs = {"host": "host1",
"binary": "nova-compute"}
- return self._verify_response('service-enable-put-resp', subs,
- response, 200)
+ self._verify_response('service-enable-put-resp', subs, response, 200)
def test_service_disable(self):
"""Disable an existing agent build."""
@@ -2029,8 +1994,7 @@ class ServicesJsonTest(ApiSampleTestBase):
'service-disable-put-req', subs)
subs = {"host": "host1",
"binary": "nova-compute"}
- return self._verify_response('service-disable-put-resp', subs,
- response, 200)
+ self._verify_response('service-disable-put-resp', subs, response, 200)
class ServicesXmlTest(ServicesJsonTest):
@@ -2062,8 +2026,7 @@ class SimpleTenantUsageSampleJsonTest(ServersSampleBase):
response = self._do_get('os-simple-tenant-usage?%s' % (
urllib.urlencode(self.query)))
subs = self._get_regexes()
- self._verify_response('simple-tenant-usage-get', subs,
- response, 200)
+ self._verify_response('simple-tenant-usage-get', subs, response, 200)
def test_get_tenant_usage_details(self):
# Get api sample to get specific tenant usage request.
@@ -2087,8 +2050,8 @@ class ServerDiagnosticsSamplesJsonTest(ServersSampleBase):
uuid = self._post_server()
response = self._do_get('servers/%s/diagnostics' % uuid)
subs = self._get_regexes()
- return self._verify_response('server-diagnostics-get-resp', subs,
- response, 200)
+ self._verify_response('server-diagnostics-get-resp', subs,
+ response, 200)
class ServerDiagnosticsSamplesXmlTest(ServerDiagnosticsSamplesJsonTest):
@@ -2107,8 +2070,8 @@ class AvailabilityZoneJsonTest(ServersSampleBase):
}
response = self._do_post('servers', 'availability-zone-post-req', subs)
subs.update(self._get_regexes())
- return self._verify_response('availability-zone-post-resp', subs,
- response, 202)
+ self._verify_response('availability-zone-post-resp', subs,
+ response, 202)
class AvailabilityZoneXmlTest(AvailabilityZoneJsonTest):
@@ -2262,8 +2225,7 @@ class ConsolesSampleJsonTests(ServersSampleBase):
subs = self._get_regexes()
subs["url"] = \
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"
- return self._verify_response('get-vnc-console-post-resp',
- subs, response, 200)
+ self._verify_response('get-vnc-console-post-resp', subs, response, 200)
def test_get_spice_console(self):
uuid = self._post_server()
@@ -2273,8 +2235,8 @@ class ConsolesSampleJsonTests(ServersSampleBase):
subs = self._get_regexes()
subs["url"] = \
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"
- return self._verify_response('get-spice-console-post-resp', subs,
- response, 200)
+ self._verify_response('get-spice-console-post-resp', subs,
+ response, 200)
class ConsolesSampleXmlTests(ConsolesSampleJsonTests):
@@ -2318,27 +2280,42 @@ class QuotasSampleJsonTests(ApiSampleTestBase):
def test_show_quotas(self):
# Get api sample to show quotas.
response = self._do_get('os-quota-sets/fake_tenant')
- return self._verify_response('quotas-show-get-resp', {}, response, 200)
+ self._verify_response('quotas-show-get-resp', {}, response, 200)
def test_show_quotas_defaults(self):
# Get api sample to show quotas defaults.
response = self._do_get('os-quota-sets/fake_tenant/defaults')
- return self._verify_response('quotas-show-defaults-get-resp',
- {}, response, 200)
+ self._verify_response('quotas-show-defaults-get-resp',
+ {}, response, 200)
def test_update_quotas(self):
# Get api sample to update quotas.
response = self._do_put('os-quota-sets/fake_tenant',
'quotas-update-post-req',
{})
- return self._verify_response('quotas-update-post-resp', {},
- response, 200)
+ self._verify_response('quotas-update-post-resp', {}, response, 200)
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")
@@ -2350,7 +2327,7 @@ class ExtendedIpsSampleJsonTests(ServersSampleBase):
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['hypervisor_hostname'] = r'[\w\.\-]+'
- return self._verify_response('server-get-resp', subs, response, 200)
+ self._verify_response('server-get-resp', subs, response, 200)
def test_detail(self):
uuid = self._post_server()
@@ -2358,8 +2335,7 @@ class ExtendedIpsSampleJsonTests(ServersSampleBase):
subs = self._get_regexes()
subs['id'] = uuid
subs['hostid'] = '[a-f0-9]+'
- return self._verify_response('servers-detail-resp', subs,
- response, 200)
+ self._verify_response('servers-detail-resp', subs, response, 200)
class ExtendedIpsSampleXmlTests(ExtendedIpsSampleJsonTests):
@@ -2379,8 +2355,7 @@ class ExtendedIpsMacSampleJsonTests(ServersSampleBase):
subs['id'] = uuid
subs['hypervisor_hostname'] = r'[\w\.\-]+'
subs['mac_addr'] = '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'
- return self._verify_response('server-get-resp', subs,
- response, 200)
+ self._verify_response('server-get-resp', subs, response, 200)
def test_detail(self):
uuid = self._post_server()
@@ -2390,8 +2365,7 @@ class ExtendedIpsMacSampleJsonTests(ServersSampleBase):
subs['id'] = uuid
subs['hostid'] = '[a-f0-9]+'
subs['mac_addr'] = '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'
- return self._verify_response('servers-detail-resp', subs,
- response, 200)
+ self._verify_response('servers-detail-resp', subs, response, 200)
class ExtendedIpsMacSampleXmlTests(ExtendedIpsMacSampleJsonTests):
@@ -2407,7 +2381,7 @@ class ExtendedStatusSampleJsonTests(ServersSampleBase):
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)
+ self._verify_response('server-get-resp', subs, response, 200)
def test_detail(self):
uuid = self._post_server()
@@ -2415,11 +2389,34 @@ class ExtendedStatusSampleJsonTests(ServersSampleBase):
subs = self._get_regexes()
subs['id'] = uuid
subs['hostid'] = '[a-f0-9]+'
+ self._verify_response('servers-detail-resp', subs, response, 200)
+
+
+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 ExtendedStatusSampleXmlTests(ExtendedStatusSampleJsonTests):
+class ServerUsageSampleXmlTests(ServerUsageSampleJsonTests):
ctype = 'xml'
@@ -2467,8 +2464,7 @@ class FlavorManageSampleJsonTests(ApiSampleTestBase):
"flavor-create-post-req",
subs)
subs.update(self._get_regexes())
- return self._verify_response("flavor-create-post-resp", subs,
- response, 200)
+ self._verify_response("flavor-create-post-resp", subs, response, 200)
def test_create_flavor(self):
# Get api sample to create a flavor.
@@ -2506,7 +2502,7 @@ class ServerPasswordSampleJsonTests(ServersSampleBase):
response = self._do_get('servers/%s/os-server-password' % uuid)
subs = self._get_regexes()
subs['encrypted_password'] = fake_ext_password().replace('+', '\\+')
- return self._verify_response('get-password-resp', subs, response, 200)
+ self._verify_response('get-password-resp', subs, response, 200)
def test_reset_password(self):
uuid = self._post_server()
@@ -2528,15 +2524,14 @@ class DiskConfigJsonTest(ServersSampleBase):
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
- return self._verify_response('list-servers-detail-get', subs,
- response, 200)
+ self._verify_response('list-servers-detail-get', subs, response, 200)
def test_get_server(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)
+ self._verify_response('server-get-resp', subs, response, 200)
def test_update_server(self):
uuid = self._post_server()
@@ -2544,8 +2539,7 @@ class DiskConfigJsonTest(ServersSampleBase):
'server-update-put-req', {})
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
- return self._verify_response('server-update-put-resp',
- subs, response, 200)
+ self._verify_response('server-update-put-resp', subs, response, 200)
def test_resize_server(self):
self.flags(allow_resize_to_same_host=True)
@@ -2567,20 +2561,20 @@ class DiskConfigJsonTest(ServersSampleBase):
'server-action-rebuild-req', subs)
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
- return self._verify_response('server-action-rebuild-resp',
- subs, response, 202)
+ self._verify_response('server-action-rebuild-resp',
+ subs, response, 202)
def test_get_image(self):
image_id = fake.get_valid_image_id()
response = self._do_get('images/%s' % image_id)
subs = self._get_regexes()
subs['image_id'] = image_id
- return self._verify_response('image-get-resp', subs, response, 200)
+ self._verify_response('image-get-resp', subs, response, 200)
def test_list_images(self):
response = self._do_get('images/detail')
subs = self._get_regexes()
- return self._verify_response('image-list-resp', subs, response, 200)
+ self._verify_response('image-list-resp', subs, response, 200)
class DiskConfigXmlTest(DiskConfigJsonTest):
@@ -2608,7 +2602,7 @@ class OsNetworksJsonTests(ApiSampleTestBase):
def test_list_networks(self):
response = self._do_get('os-tenant-networks')
subs = self._get_regexes()
- return self._verify_response('networks-list-res', subs, response, 200)
+ self._verify_response('networks-list-res', subs, response, 200)
def test_create_network(self):
response = self._do_post('os-tenant-networks', "networks-post-req", {})
@@ -2739,15 +2733,13 @@ class FlavorDisabledSampleJsonTests(ApiSampleTestBase):
response = self._do_get('flavors/%s' % flavor_id)
subs = self._get_regexes()
subs['flavor_id'] = flavor_id
- return self._verify_response('flavor-show-get-resp', subs,
- response, 200)
+ self._verify_response('flavor-show-get-resp', subs, response, 200)
def test_detail_flavor(self):
# Get api sample to show details of a flavor.
response = self._do_get('flavors/detail')
subs = self._get_regexes()
- return self._verify_response('flavor-detail-get-resp', subs,
- response, 200)
+ self._verify_response('flavor-detail-get-resp', subs, response, 200)
class FlavorDisabledSampleXmlTests(FlavorDisabledSampleJsonTests):
@@ -2763,16 +2755,16 @@ class QuotaClassesSampleJsonTests(ApiSampleTestBase):
# Get api sample to show quota classes.
response = self._do_get('os-quota-class-sets/%s' % self.set_id)
subs = {'set_id': self.set_id}
- return self._verify_response('quota-classes-show-get-resp', subs,
- response, 200)
+ self._verify_response('quota-classes-show-get-resp', subs,
+ response, 200)
def test_update_quota_classes(self):
# Get api sample to update quota classes.
response = self._do_put('os-quota-class-sets/%s' % self.set_id,
'quota-classes-update-post-req',
{})
- return self._verify_response('quota-classes-update-post-resp',
- {}, response, 200)
+ self._verify_response('quota-classes-update-post-resp',
+ {}, response, 200)
class QuotaClassesSampleXmlTests(QuotaClassesSampleJsonTests):
@@ -2819,24 +2811,71 @@ class CellsSampleJsonTest(ApiSampleTestBase):
self._stub_cells(num_cells=0)
response = self._do_get('os-cells')
subs = self._get_regexes()
- return self._verify_response('cells-list-empty-resp', subs,
- response, 200)
+ self._verify_response('cells-list-empty-resp', subs, response, 200)
def test_cells_list(self):
response = self._do_get('os-cells')
subs = self._get_regexes()
- return self._verify_response('cells-list-resp', subs, response, 200)
+ self._verify_response('cells-list-resp', subs, response, 200)
def test_cells_get(self):
response = self._do_get('os-cells/cell3')
subs = self._get_regexes()
- return self._verify_response('cells-get-resp', subs, response, 200)
+ self._verify_response('cells-get-resp', subs, response, 200)
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')
@@ -2858,8 +2897,8 @@ class BareMetalNodesJsonTest(ApiSampleTestBase, bm_db_base.BMDBTestCase):
subs = {'node_id': '(?P<id>\d+)',
'interface_id': '\d+',
'address': address}
- return self._verify_response("baremetal-node-create-with-address-resp",
- subs, response, 200)
+ self._verify_response("baremetal-node-create-with-address-resp",
+ subs, response, 200)
def test_create_node(self):
self._create_node()
@@ -2875,8 +2914,8 @@ class BareMetalNodesJsonTest(ApiSampleTestBase, bm_db_base.BMDBTestCase):
'interface_id': interface_id,
'address': 'aa:aa:aa:aa:aa:aa',
}
- return self._verify_response('baremetal-node-list-resp', subs,
- response, 200)
+ self._verify_response('baremetal-node-list-resp', subs,
+ response, 200)
def test_show_node(self):
node_id = self._create_node()
@@ -2886,8 +2925,7 @@ class BareMetalNodesJsonTest(ApiSampleTestBase, bm_db_base.BMDBTestCase):
'interface_id': interface_id,
'address': 'aa:aa:aa:aa:aa:aa',
}
- return self._verify_response('baremetal-node-show-resp', subs,
- response, 200)
+ self._verify_response('baremetal-node-show-resp', subs, response, 200)
def test_delete_node(self):
node_id = self._create_node()
@@ -2938,8 +2976,7 @@ class FloatingIPPoolsSampleJsonTests(ApiSampleTestBase):
'pool1': pool_list[0],
'pool2': pool_list[1]
}
- return self._verify_response('floatingippools-list-resp', subs,
- response, 200)
+ self._verify_response('floatingippools-list-resp', subs, response, 200)
class FloatingIPPoolsSampleXmlTests(FloatingIPPoolsSampleJsonTests):
@@ -2979,15 +3016,15 @@ class InstanceUsageAuditLogJsonTest(ApiSampleTestBase):
urllib.quote('2012-07-05 10:00:00'))
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
- return self._verify_response('inst-usage-audit-log-show-get-resp',
- subs, response, 200)
+ self._verify_response('inst-usage-audit-log-show-get-resp',
+ subs, response, 200)
def test_index_instance_usage_audit_log(self):
response = self._do_get('os-instance_usage_audit_log')
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
- return self._verify_response('inst-usage-audit-log-index-get-resp',
- subs, response, 200)
+ self._verify_response('inst-usage-audit-log-index-get-resp',
+ subs, response, 200)
class InstanceUsageAuditLogXmlTest(InstanceUsageAuditLogJsonTest):
@@ -3004,15 +3041,15 @@ class FlavorExtraSpecsSampleJsonTests(ApiSampleTestBase):
}
response = self._do_post('flavors/1/os-extra_specs',
'flavor-extra-specs-create-req', subs)
- return self._verify_response('flavor-extra-specs-create-resp',
- subs, response, 200)
+ self._verify_response('flavor-extra-specs-create-resp',
+ subs, response, 200)
def test_flavor_extra_specs_get(self):
subs = {'value1': 'value1'}
self._flavor_extra_specs_create()
response = self._do_get('flavors/1/os-extra_specs/key1')
- return self._verify_response('flavor-extra-specs-get-resp',
- subs, response, 200)
+ self._verify_response('flavor-extra-specs-get-resp',
+ subs, response, 200)
def test_flavor_extra_specs_list(self):
subs = {'value1': 'value1',
@@ -3020,19 +3057,19 @@ class FlavorExtraSpecsSampleJsonTests(ApiSampleTestBase):
}
self._flavor_extra_specs_create()
response = self._do_get('flavors/1/os-extra_specs')
- return self._verify_response('flavor-extra-specs-list-resp',
- subs, response, 200)
+ self._verify_response('flavor-extra-specs-list-resp',
+ subs, response, 200)
def test_flavor_extra_specs_create(self):
- return self._flavor_extra_specs_create()
+ self._flavor_extra_specs_create()
def test_flavor_extra_specs_update(self):
subs = {'value1': 'new_value1'}
self._flavor_extra_specs_create()
response = self._do_put('flavors/1/os-extra_specs/key1',
'flavor-extra-specs-update-req', subs)
- return self._verify_response('flavor-extra-specs-update-resp',
- subs, response, 200)
+ self._verify_response('flavor-extra-specs-update-resp',
+ subs, response, 200)
def test_flavor_extra_specs_delete(self):
self._flavor_extra_specs_create()
@@ -3061,14 +3098,13 @@ class FpingSampleJsonTests(ServersSampleBase):
self._post_server()
response = self._do_get('os-fping')
subs = self._get_regexes()
- return self._verify_response('fping-get-resp', subs, response, 200)
+ self._verify_response('fping-get-resp', subs, response, 200)
def test_get_fping_details(self):
uuid = self._post_server()
response = self._do_get('os-fping/%s' % (uuid))
subs = self._get_regexes()
- return self._verify_response('fping-get-details-resp', subs,
- response, 200)
+ self._verify_response('fping-get-details-resp', subs, response, 200)
class FpingSampleXmlTests(FpingSampleJsonTests):
@@ -3085,15 +3121,14 @@ class ExtendedAvailabilityZoneJsonTests(ServersSampleBase):
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)
+ self._verify_response('server-get-resp', subs, response, 200)
def test_detail(self):
uuid = 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)
+ self._verify_response('servers-detail-resp', subs, response, 200)
class ExtendedAvailabilityZoneXmlTests(ExtendedAvailabilityZoneJsonTests):
@@ -3124,8 +3159,7 @@ class EvacuateJsonTest(ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'server-evacuate-req', req_subs)
subs = self._get_regexes()
- return self._verify_response('server-evacuate-resp', subs,
- response, 200)
+ self._verify_response('server-evacuate-resp', subs, response, 200)
class EvacuateXmlTest(EvacuateJsonTest):
@@ -3168,8 +3202,8 @@ class FloatingIpDNSJsonTest(ApiSampleTestBase):
subs = {'domain': self.domain,
'project': self.project,
'scope': self.scope}
- return self._verify_response('floating-ip-dns-list-resp', subs,
- response, 200)
+ self._verify_response('floating-ip-dns-list-resp', subs,
+ response, 200)
def test_floating_ip_dns_create_or_update(self):
self._create_or_update()
@@ -3189,8 +3223,8 @@ class FloatingIpDNSJsonTest(ApiSampleTestBase):
subs = {'domain': self.domain,
'ip': self.ip,
'name': self.name}
- return self._verify_response('floating-ip-dns-entry-get-resp', subs,
- response, 200)
+ self._verify_response('floating-ip-dns-entry-get-resp', subs,
+ response, 200)
def test_floating_ip_dns_entry_delete(self):
self._create_or_update_entry()
@@ -3205,8 +3239,8 @@ class FloatingIpDNSJsonTest(ApiSampleTestBase):
subs = {'domain': self.domain,
'ip': self.ip,
'name': self.name}
- return self._verify_response('floating-ip-dns-entry-list-resp', subs,
- response, 200)
+ self._verify_response('floating-ip-dns-entry-list-resp', subs,
+ response, 200)
class FloatingIpDNSXmlTest(FloatingIpDNSJsonTest):
@@ -3262,8 +3296,7 @@ class InstanceActionsSampleJsonTest(ApiSampleTestBase):
subs['start_time'] = fake_action['start_time']
subs['result'] = '(Success)|(Error)'
subs['event'] = '(schedule)|(compute_create)'
- return self._verify_response('instance-action-get-resp', subs,
- response, 200)
+ self._verify_response('instance-action-get-resp', subs, response, 200)
def test_instance_actions_list(self):
fake_uuid = fake_instance_actions.FAKE_UUID
@@ -3273,8 +3306,8 @@ class InstanceActionsSampleJsonTest(ApiSampleTestBase):
subs['integer_id'] = '[0-9]+'
subs['request_id'] = ('req-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
'-[0-9a-f]{4}-[0-9a-f]{12}')
- return self._verify_response('instance-actions-list-resp', subs,
- response, 200)
+ self._verify_response('instance-actions-list-resp', subs,
+ response, 200)
class InstanceActionsSampleXmlTest(InstanceActionsSampleJsonTest):
@@ -3291,14 +3324,13 @@ class ImageSizeSampleJsonTests(ApiSampleTestBase):
response = self._do_get('images/%s' % image_id)
subs = self._get_regexes()
subs['image_id'] = image_id
- return self._verify_response('image-get-resp', subs, response, 200)
+ self._verify_response('image-get-resp', subs, response, 200)
def test_detail(self):
# Get api sample of all images details request.
response = self._do_get('images/detail')
subs = self._get_regexes()
- return self._verify_response('images-details-get-resp', subs,
- response, 200)
+ self._verify_response('images-details-get-resp', subs, response, 200)
class ImageSizeSampleXmlTests(ImageSizeSampleJsonTests):
@@ -3322,8 +3354,8 @@ class ConfigDriveSampleJsonTest(ServersSampleBase):
subs['hostid'] = '[a-f0-9]+'
# config drive can be an uuid or empty value
subs['cdrive'] = '(%s)?' % subs['uuid']
- return self._verify_response('server-config-drive-get-resp', subs,
- response, 200)
+ self._verify_response('server-config-drive-get-resp', subs,
+ response, 200)
def test_config_drive_detail(self):
uuid = self._post_server()
@@ -3332,8 +3364,8 @@ class ConfigDriveSampleJsonTest(ServersSampleBase):
subs['hostid'] = '[a-f0-9]+'
# config drive can be an uuid or empty value
subs['cdrive'] = '(%s)?' % subs['uuid']
- return self._verify_response('servers-config-drive-details-resp',
- subs, response, 200)
+ self._verify_response('servers-config-drive-details-resp',
+ subs, response, 200)
class ConfigDriveSampleXmlTest(ConfigDriveSampleJsonTest):
@@ -3360,8 +3392,8 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBase):
response = self._do_post('flavors/10/action',
'flavor-access-add-tenant-req',
subs)
- return self._verify_response('flavor-access-add-tenant-resp',
- subs, response, 200)
+ self._verify_response('flavor-access-add-tenant-resp',
+ subs, response, 200)
def _create_flavor(self):
subs = {
@@ -3372,8 +3404,7 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBase):
"flavor-access-create-req",
subs)
subs.update(self._get_regexes())
- return self._verify_response("flavor-access-create-resp",
- subs, response, 200)
+ self._verify_response("flavor-access-create-resp", subs, response, 200)
def test_flavor_access_create(self):
self._create_flavor()
@@ -3381,8 +3412,7 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBase):
def test_flavor_access_detail(self):
response = self._do_get('flavors/detail')
subs = self._get_regexes()
- return self._verify_response('flavor-access-detail-resp',
- subs, response, 200)
+ self._verify_response('flavor-access-detail-resp', subs, response, 200)
def test_flavor_access_list(self):
self._create_flavor()
@@ -3393,8 +3423,7 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBase):
'flavor_id': flavor_id,
'tenant_id': 'fake_tenant',
}
- return self._verify_response('flavor-access-list-resp',
- subs, response, 200)
+ self._verify_response('flavor-access-list-resp', subs, response, 200)
def test_flavor_access_show(self):
flavor_id = 1
@@ -3403,8 +3432,7 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBase):
'flavor_id': flavor_id
}
subs.update(self._get_regexes())
- return self._verify_response('flavor-access-show-resp',
- subs, response, 200)
+ self._verify_response('flavor-access-show-resp', subs, response, 200)
def test_flavor_access_add_tenant(self):
self._create_flavor()
@@ -3419,8 +3447,8 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBase):
response = self._do_post('flavors/10/action',
"flavor-access-remove-tenant-req",
subs)
- return self._verify_response('flavor-access-remove-tenant-resp',
- {}, response, 200)
+ self._verify_response('flavor-access-remove-tenant-resp',
+ {}, response, 200)
class FlavorAccessSampleXmlTests(FlavorAccessSampleJsonTests):
@@ -3433,18 +3461,15 @@ class HypervisorsSampleJsonTests(ApiSampleTestBase):
def test_hypervisors_list(self):
response = self._do_get('os-hypervisors')
- return self._verify_response('hypervisors-list-resp',
- {}, response, 200)
+ self._verify_response('hypervisors-list-resp', {}, response, 200)
def test_hypervisors_search(self):
response = self._do_get('os-hypervisors/fake/search')
- return self._verify_response('hypervisors-search-resp',
- {}, response, 200)
+ self._verify_response('hypervisors-search-resp', {}, response, 200)
def test_hypervisors_servers(self):
response = self._do_get('os-hypervisors/fake/servers')
- return self._verify_response('hypervisors-servers-resp',
- {}, response, 200)
+ self._verify_response('hypervisors-servers-resp', {}, response, 200)
def test_hypervisors_show(self):
hypervisor_id = 1
@@ -3453,13 +3478,11 @@ class HypervisorsSampleJsonTests(ApiSampleTestBase):
}
response = self._do_get('os-hypervisors/%s' % hypervisor_id)
subs.update(self._get_regexes())
- return self._verify_response('hypervisors-show-resp',
- subs, response, 200)
+ self._verify_response('hypervisors-show-resp', subs, response, 200)
def test_hypervisors_statistics(self):
response = self._do_get('os-hypervisors/statistics')
- return self._verify_response('hypervisors-statistics-resp',
- {}, response, 200)
+ self._verify_response('hypervisors-statistics-resp', {}, response, 200)
def test_hypervisors_uptime(self):
def fake_get_host_uptime(self, context, hyp):
@@ -3473,8 +3496,7 @@ class HypervisorsSampleJsonTests(ApiSampleTestBase):
subs = {
'hypervisor_id': hypervisor_id,
}
- return self._verify_response('hypervisors-uptime-resp',
- subs, response, 200)
+ self._verify_response('hypervisors-uptime-resp', subs, response, 200)
class HypervisorsSampleXmlTests(HypervisorsSampleJsonTests):
@@ -3678,8 +3700,8 @@ class SnapshotsSampleJsonTests(ApiSampleTestBase):
def test_snapshots_create(self):
response = self._create_snapshot()
self.create_subs.update(self._get_regexes())
- return self._verify_response("snapshot-create-resp",
- self.create_subs, response, 200)
+ self._verify_response("snapshot-create-resp",
+ self.create_subs, response, 200)
def test_snapshots_delete(self):
self.stubs.Set(cinder.API, "delete_snapshot",
@@ -3692,14 +3714,12 @@ class SnapshotsSampleJsonTests(ApiSampleTestBase):
def test_snapshots_detail(self):
response = self._do_get('os-snapshots/detail')
subs = self._get_regexes()
- return self._verify_response('snapshots-detail-resp', subs,
- response, 200)
+ self._verify_response('snapshots-detail-resp', subs, response, 200)
def test_snapshots_list(self):
response = self._do_get('os-snapshots')
subs = self._get_regexes()
- return self._verify_response('snapshots-list-resp',
- subs, response, 200)
+ self._verify_response('snapshots-list-resp', subs, response, 200)
def test_snapshots_show(self):
response = self._do_get('os-snapshots/100')
@@ -3708,8 +3728,7 @@ class SnapshotsSampleJsonTests(ApiSampleTestBase):
'description': 'Default description'
}
subs.update(self._get_regexes())
- return self._verify_response('snapshots-show-resp', subs,
- response, 200)
+ self._verify_response('snapshots-show-resp', subs, response, 200)
class SnapshotsSampleXmlTests(SnapshotsSampleJsonTests):
@@ -3867,8 +3886,7 @@ class VolumesSampleJsonTest(ServersSampleBase):
subs_req)
subs = self._get_regexes()
subs.update(subs_req)
- return self._verify_response('os-volumes-post-resp', subs,
- response, 200)
+ self._verify_response('os-volumes-post-resp', subs, response, 200)
def test_volumes_show(self):
subs = {
@@ -3878,8 +3896,7 @@ class VolumesSampleJsonTest(ServersSampleBase):
vol_id = self._get_volume_id()
response = self._do_get('os-volumes/%s' % vol_id)
subs.update(self._get_regexes())
- return self._verify_response('os-volumes-get-resp', subs,
- response, 200)
+ self._verify_response('os-volumes-get-resp', subs, response, 200)
def test_volumes_index(self):
subs = {
@@ -3888,8 +3905,7 @@ class VolumesSampleJsonTest(ServersSampleBase):
}
response = self._do_get('os-volumes')
subs.update(self._get_regexes())
- return self._verify_response('os-volumes-index-resp', subs,
- response, 200)
+ self._verify_response('os-volumes-index-resp', subs, response, 200)
def test_volumes_detail(self):
# For now, index and detail are the same.
@@ -3900,11 +3916,10 @@ class VolumesSampleJsonTest(ServersSampleBase):
}
response = self._do_get('os-volumes/detail')
subs.update(self._get_regexes())
- return self._verify_response('os-volumes-detail-resp', subs,
- response, 200)
+ self._verify_response('os-volumes-detail-resp', subs, response, 200)
def test_volumes_create(self):
- return self._post_volume()
+ self._post_volume()
def test_volumes_delete(self):
self._post_volume()
diff --git a/nova/tests/integrated/test_multiprocess_api.py b/nova/tests/integrated/test_multiprocess_api.py
index c85a43a0c..2610cdcb7 100644
--- a/nova/tests/integrated/test_multiprocess_api.py
+++ b/nova/tests/integrated/test_multiprocess_api.py
@@ -54,8 +54,8 @@ class MultiprocessWSGITest(integrated_helpers._IntegratedTestBase):
# os._exit() which doesn't have this problem.
status = 0
try:
- launcher = service.ProcessLauncher()
- launcher.launch_server(self.osapi, workers=self.osapi.workers)
+ launcher = service.process_launcher()
+ launcher.launch_service(self.osapi, workers=self.osapi.workers)
launcher.wait()
except SystemExit as exc:
status = exc.code
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..498767865
--- /dev/null
+++ b/nova/tests/objects/test_instance.py
@@ -0,0 +1,186 @@
+# 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))
+ 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')
+
+
+class TestInstanceObject(test_objects._LocalTest,
+ _TestInstanceObject):
+ pass
+
+
+class TestRemoteInstanceObject(test_objects._RemoteTest,
+ _TestInstanceObject):
+ pass
diff --git a/nova/tests/objects/test_objects.py b/nova/tests/objects/test_objects.py
new file mode 100644
index 000000000..e7508ba38
--- /dev/null
+++ b/nova/tests/objects/test_objects.py
@@ -0,0 +1,451 @@
+# 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
+ expected = {'nova_object.name': 'MyObj',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.5',
+ 'nova_object.changes':
+ ['created_at', 'deleted_at', 'updated_at'],
+ 'nova_object.data':
+ {'created_at': timeutils.isotime(dt),
+ 'updated_at': timeutils.isotime(dt),
+ 'deleted_at': None}
+ }
+ 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()
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 b585aede5..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,
@@ -739,23 +739,36 @@ class DbQuotaDriverTestCase(test.TestCase):
def test_get_defaults(self):
# Use our pre-defined resources
+ self._stub_quota_class_get_default()
result = self.driver.get_defaults(None, quota.QUOTAS._resources)
self.assertEqual(result, dict(
- instances=10,
+ instances=5,
cores=20,
- ram=50 * 1024,
+ ram=25 * 1024,
floating_ips=10,
fixed_ips=10,
- metadata_items=128,
+ metadata_items=64,
injected_files=5,
- injected_file_content_bytes=10 * 1024,
+ injected_file_content_bytes=5 * 1024,
injected_file_path_bytes=255,
security_groups=10,
security_group_rules=20,
key_pairs=100,
))
+ def _stub_quota_class_get_default(self):
+ # Stub out quota_class_get_default
+ def fake_qcgd(context):
+ self.calls.append('quota_class_get_default')
+ return dict(
+ instances=5,
+ ram=25 * 1024,
+ metadata_items=64,
+ injected_file_content_bytes=5 * 1024,
+ )
+ self.stubs.Set(db, 'quota_class_get_default', fake_qcgd)
+
def _stub_quota_class_get_all_by_name(self):
# Stub out quota_class_get_all_by_name
def fake_qcgabn(context, quota_class):
@@ -831,6 +844,7 @@ class DbQuotaDriverTestCase(test.TestCase):
self.stubs.Set(db, 'quota_usage_get_all_by_project', fake_qugabp)
self._stub_quota_class_get_all_by_name()
+ self._stub_quota_class_get_default()
def test_get_project_quotas(self):
self.maxDiff = None
@@ -843,6 +857,7 @@ class DbQuotaDriverTestCase(test.TestCase):
'quota_get_all_by_project',
'quota_usage_get_all_by_project',
'quota_class_get_all_by_name',
+ 'quota_class_get_default',
])
self.assertEqual(result, dict(
instances=dict(
@@ -917,10 +932,11 @@ class DbQuotaDriverTestCase(test.TestCase):
self.assertEqual(self.calls, [
'quota_get_all_by_project',
'quota_usage_get_all_by_project',
+ 'quota_class_get_default',
])
self.assertEqual(result, dict(
instances=dict(
- limit=10,
+ limit=5,
in_use=2,
reserved=2,
),
@@ -930,7 +946,7 @@ class DbQuotaDriverTestCase(test.TestCase):
reserved=4,
),
ram=dict(
- limit=50 * 1024,
+ limit=25 * 1024,
in_use=10 * 1024,
reserved=0,
),
@@ -945,7 +961,7 @@ class DbQuotaDriverTestCase(test.TestCase):
reserved=0,
),
metadata_items=dict(
- limit=128,
+ limit=64,
in_use=0,
reserved=0,
),
@@ -955,7 +971,7 @@ class DbQuotaDriverTestCase(test.TestCase):
reserved=0,
),
injected_file_content_bytes=dict(
- limit=10 * 1024,
+ limit=5 * 1024,
in_use=0,
reserved=0,
),
@@ -992,6 +1008,7 @@ class DbQuotaDriverTestCase(test.TestCase):
'quota_get_all_by_project',
'quota_usage_get_all_by_project',
'quota_class_get_all_by_name',
+ 'quota_class_get_default',
])
self.assertEqual(result, dict(
instances=dict(
@@ -1066,6 +1083,7 @@ class DbQuotaDriverTestCase(test.TestCase):
'quota_get_all_by_project',
'quota_usage_get_all_by_project',
'quota_class_get_all_by_name',
+ 'quota_class_get_default',
])
self.assertEqual(result, dict(
cores=dict(
@@ -1094,6 +1112,7 @@ class DbQuotaDriverTestCase(test.TestCase):
self.assertEqual(self.calls, [
'quota_get_all_by_project',
'quota_class_get_all_by_name',
+ 'quota_class_get_default',
])
self.assertEqual(result, dict(
instances=dict(
diff --git a/nova/tests/test_service.py b/nova/tests/test_service.py
index 2cbc82fda..3ca6d7bc1 100644
--- a/nova/tests/test_service.py
+++ b/nova/tests/test_service.py
@@ -201,7 +201,6 @@ class TestLauncher(test.TestCase):
self.service = service.WSGIService("test_service")
def test_launch_app(self):
- launcher = service.Launcher()
- launcher.launch_server(self.service)
+ service.serve(self.service)
self.assertNotEquals(0, self.service.port)
- launcher.stop()
+ service._launcher.stop()
diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py
index 39db03f3e..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)
@@ -360,19 +360,6 @@ class GenericUtilsTestCase(test.TestCase):
h2 = hashlib.sha1(data).hexdigest()
self.assertEquals(h1, h2)
- def test_is_valid_boolstr(self):
- self.assertTrue(utils.is_valid_boolstr('true'))
- self.assertTrue(utils.is_valid_boolstr('false'))
- self.assertTrue(utils.is_valid_boolstr('yes'))
- self.assertTrue(utils.is_valid_boolstr('no'))
- self.assertTrue(utils.is_valid_boolstr('y'))
- self.assertTrue(utils.is_valid_boolstr('n'))
- self.assertTrue(utils.is_valid_boolstr('1'))
- self.assertTrue(utils.is_valid_boolstr('0'))
-
- self.assertFalse(utils.is_valid_boolstr('maybe'))
- self.assertFalse(utils.is_valid_boolstr('only on tuesdays'))
-
def test_is_valid_ipv4(self):
self.assertTrue(utils.is_valid_ipv4('127.0.0.1'))
self.assertFalse(utils.is_valid_ipv4('::1'))
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/baremetal/db/__init__.py b/nova/tests/virt/baremetal/__init__.py
index 543dfc1ae..34b09daac 100644
--- a/nova/tests/baremetal/db/__init__.py
+++ b/nova/tests/virt/baremetal/__init__.py
@@ -12,4 +12,4 @@
# 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.tests.baremetal.db import *
+from nova.tests.virt.baremetal import *
diff --git a/nova/tests/baremetal/__init__.py b/nova/tests/virt/baremetal/db/__init__.py
index f15d84efc..0f1f4e846 100644
--- a/nova/tests/baremetal/__init__.py
+++ b/nova/tests/virt/baremetal/db/__init__.py
@@ -12,4 +12,4 @@
# 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.tests.baremetal import *
+from nova.tests.virt.baremetal.db import *
diff --git a/nova/tests/baremetal/db/base.py b/nova/tests/virt/baremetal/db/base.py
index 499eee32a..499eee32a 100644
--- a/nova/tests/baremetal/db/base.py
+++ b/nova/tests/virt/baremetal/db/base.py
diff --git a/nova/tests/baremetal/db/test_bm_interface.py b/nova/tests/virt/baremetal/db/test_bm_interface.py
index e870ec5e0..24b6ae1e1 100644
--- a/nova/tests/baremetal/db/test_bm_interface.py
+++ b/nova/tests/virt/baremetal/db/test_bm_interface.py
@@ -19,7 +19,7 @@ Bare-metal DB testcase for BareMetalInterface
from nova import exception
from nova.openstack.common.db import exception as db_exc
-from nova.tests.baremetal.db import base
+from nova.tests.virt.baremetal.db import base
from nova.virt.baremetal import db
diff --git a/nova/tests/baremetal/db/test_bm_node.py b/nova/tests/virt/baremetal/db/test_bm_node.py
index 204a6bf7b..0acd5a994 100644
--- a/nova/tests/baremetal/db/test_bm_node.py
+++ b/nova/tests/virt/baremetal/db/test_bm_node.py
@@ -18,8 +18,8 @@ Bare-Metal DB testcase for BareMetalNode
"""
from nova import exception
-from nova.tests.baremetal.db import base
-from nova.tests.baremetal.db import utils
+from nova.tests.virt.baremetal.db import base
+from nova.tests.virt.baremetal.db import utils
from nova.virt.baremetal import db
diff --git a/nova/tests/baremetal/db/test_bm_pxe_ip.py b/nova/tests/virt/baremetal/db/test_bm_pxe_ip.py
index fe8ba5b3e..85f3e2f4b 100644
--- a/nova/tests/baremetal/db/test_bm_pxe_ip.py
+++ b/nova/tests/virt/baremetal/db/test_bm_pxe_ip.py
@@ -19,8 +19,8 @@ Bare-metal DB testcase for BareMetalPxeIp
from nova import exception
from nova.openstack.common.db import exception as db_exc
-from nova.tests.baremetal.db import base
-from nova.tests.baremetal.db import utils
+from nova.tests.virt.baremetal.db import base
+from nova.tests.virt.baremetal.db import utils
from nova.virt.baremetal import db
diff --git a/nova/tests/baremetal/db/utils.py b/nova/tests/virt/baremetal/db/utils.py
index f50abd2e6..c3b3cff5f 100644
--- a/nova/tests/baremetal/db/utils.py
+++ b/nova/tests/virt/baremetal/db/utils.py
@@ -31,7 +31,6 @@ def new_bm_node(**kwargs):
h.pm_address = kwargs.pop('pm_address', '192.168.1.1')
h.pm_user = kwargs.pop('pm_user', 'ipmi_user')
h.pm_password = kwargs.pop('pm_password', 'ipmi_password')
- h.prov_mac_address = kwargs.pop('prov_mac_address', '12:34:56:78:90:ab')
h.task_state = kwargs.pop('task_state', None)
h.terminal_port = kwargs.pop('terminal_port', 8000)
if len(kwargs) > 0:
diff --git a/nova/tests/test_baremetal_migrations.conf b/nova/tests/virt/baremetal/test_baremetal_migrations.conf
index 774f14994..774f14994 100644
--- a/nova/tests/test_baremetal_migrations.conf
+++ b/nova/tests/virt/baremetal/test_baremetal_migrations.conf
diff --git a/nova/tests/baremetal/test_driver.py b/nova/tests/virt/baremetal/test_driver.py
index 3b0295a92..0564faf1e 100644
--- a/nova/tests/baremetal/test_driver.py
+++ b/nova/tests/virt/baremetal/test_driver.py
@@ -25,10 +25,10 @@ from oslo.config import cfg
from nova.compute import power_state
from nova import exception
from nova import test
-from nova.tests.baremetal.db import base as bm_db_base
-from nova.tests.baremetal.db import utils as bm_db_utils
from nova.tests.image import fake as fake_image
from nova.tests import utils
+from nova.tests.virt.baremetal.db import base as bm_db_base
+from nova.tests.virt.baremetal.db import utils as bm_db_utils
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import db
from nova.virt.baremetal import driver as bm_driver
diff --git a/nova/tests/baremetal/test_ipmi.py b/nova/tests/virt/baremetal/test_ipmi.py
index 01bb58d8b..ba7a875cf 100644
--- a/nova/tests/baremetal/test_ipmi.py
+++ b/nova/tests/virt/baremetal/test_ipmi.py
@@ -26,7 +26,7 @@ import tempfile
from oslo.config import cfg
from nova import test
-from nova.tests.baremetal.db import utils as bm_db_utils
+from nova.tests.virt.baremetal.db import utils as bm_db_utils
from nova import utils
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import ipmi
diff --git a/nova/tests/baremetal/test_nova_baremetal_deploy_helper.py b/nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py
index 42ee6c8e4..28f40bcf9 100644
--- a/nova/tests/baremetal/test_nova_baremetal_deploy_helper.py
+++ b/nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py
@@ -25,7 +25,7 @@ import mox
from nova.cmd import baremetal_deploy_helper as bmdh
from nova.openstack.common import log as logging
from nova import test
-from nova.tests.baremetal.db import base as bm_db_base
+from nova.tests.virt.baremetal.db import base as bm_db_base
from nova.virt.baremetal import db as bm_db
bmdh.LOG = logging.getLogger('nova.virt.baremetal.deploy_helper')
diff --git a/nova/tests/baremetal/test_nova_baremetal_manage.py b/nova/tests/virt/baremetal/test_nova_baremetal_manage.py
index 6be63aac2..6651e6ad4 100644
--- a/nova/tests/baremetal/test_nova_baremetal_manage.py
+++ b/nova/tests/virt/baremetal/test_nova_baremetal_manage.py
@@ -17,7 +17,7 @@
# under the License.
from nova.cmd import baremetal_manage as bm_man
-from nova.tests.baremetal.db import base as bm_db_base
+from nova.tests.virt.baremetal.db import base as bm_db_base
class BareMetalDbCommandsTestCase(bm_db_base.BMDBTestCase):
diff --git a/nova/tests/baremetal/test_pxe.py b/nova/tests/virt/baremetal/test_pxe.py
index 50fe16715..022f9c692 100644
--- a/nova/tests/baremetal/test_pxe.py
+++ b/nova/tests/virt/baremetal/test_pxe.py
@@ -28,10 +28,10 @@ from testtools import matchers
from nova import exception
from nova.openstack.common.db import exception as db_exc
-from nova.tests.baremetal.db import base as bm_db_base
-from nova.tests.baremetal.db import utils as bm_db_utils
from nova.tests.image import fake as fake_image
from nova.tests import utils
+from nova.tests.virt.baremetal.db import base as bm_db_base
+from nova.tests.virt.baremetal.db import utils as bm_db_utils
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import db
from nova.virt.baremetal import pxe
@@ -74,7 +74,6 @@ class BareMetalPXETestCase(bm_db_base.BMDBTestCase):
service_host='test_host',
cpus=4,
memory_mb=2048,
- prov_mac_address='11:11:11:11:11:11',
)
self.nic_info = [
{'address': '22:22:22:22:22:22', 'datapath_id': '0x1',
diff --git a/nova/tests/baremetal/test_tilera.py b/nova/tests/virt/baremetal/test_tilera.py
index f92e9b270..488cba4df 100755
--- a/nova/tests/baremetal/test_tilera.py
+++ b/nova/tests/virt/baremetal/test_tilera.py
@@ -24,10 +24,10 @@ from oslo.config import cfg
from nova import exception
from nova.openstack.common.db import exception as db_exc
-from nova.tests.baremetal.db import base as bm_db_base
-from nova.tests.baremetal.db import utils as bm_db_utils
from nova.tests.image import fake as fake_image
from nova.tests import utils
+from nova.tests.virt.baremetal.db import base as bm_db_base
+from nova.tests.virt.baremetal.db import utils as bm_db_utils
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import db
from nova.virt.baremetal import tilera
@@ -70,7 +70,6 @@ class BareMetalTileraTestCase(bm_db_base.BMDBTestCase):
service_host='test_host',
cpus=4,
memory_mb=2048,
- prov_mac_address='11:11:11:11:11:11',
)
self.nic_info = [
{'address': '22:22:22:22:22:22', 'datapath_id': '0x1',
diff --git a/nova/tests/baremetal/test_tilera_pdu.py b/nova/tests/virt/baremetal/test_tilera_pdu.py
index fee5bc49e..95d840574 100755
--- a/nova/tests/baremetal/test_tilera_pdu.py
+++ b/nova/tests/virt/baremetal/test_tilera_pdu.py
@@ -21,7 +21,7 @@
from oslo.config import cfg
from nova import test
-from nova.tests.baremetal.db import utils as bm_db_utils
+from nova.tests.virt.baremetal.db import utils as bm_db_utils
from nova import utils
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import tilera_pdu
diff --git a/nova/tests/baremetal/test_utils.py b/nova/tests/virt/baremetal/test_utils.py
index df5112deb..df5112deb 100644
--- a/nova/tests/baremetal/test_utils.py
+++ b/nova/tests/virt/baremetal/test_utils.py
diff --git a/nova/tests/baremetal/test_virtual_power_driver.py b/nova/tests/virt/baremetal/test_virtual_power_driver.py
index d6d615194..58a1e4f08 100644
--- a/nova/tests/baremetal/test_virtual_power_driver.py
+++ b/nova/tests/virt/baremetal/test_virtual_power_driver.py
@@ -23,10 +23,10 @@ from oslo.config import cfg
from nova import exception
from nova.openstack.common import processutils
-from nova.tests.baremetal.db import base as bm_db_base
-from nova.tests.baremetal.db import utils as bm_db_utils
from nova.tests.image import fake as fake_image
from nova.tests import utils
+from nova.tests.virt.baremetal.db import base as bm_db_base
+from nova.tests.virt.baremetal.db import utils as bm_db_utils
from nova.virt.baremetal import db
from nova.virt.baremetal import virtual_power_driver
import nova.virt.powervm.common as connection
@@ -71,7 +71,6 @@ class BareMetalVPDTestCase(bm_db_base.BMDBTestCase):
service_host='test_host',
cpus=2,
memory_mb=2048,
- prov_mac_address='aa:bb:cc:dd:ee:ff',
)
self.nic_info = [
{'address': '11:11:11:11:11:11', 'datapath_id': '0x1',
@@ -200,9 +199,7 @@ class VPDClassMethodsTestCase(BareMetalVPDTestCase):
self.mox.StubOutWithMock(self.pm, '_run_command')
cmd = self.pm._vp_cmd.get_node_macs.replace('{_NodeName_}', 'testNode')
- # aa:bb:cc:dd:ee:ff is prov_mac_adress. Check it is not used to
- # find the node.
- self.pm._run_command(cmd).AndReturn(["aabbccddeeff", "ffeeddccbbaa"])
+ self.pm._run_command(cmd).AndReturn(["ffeeddccbbaa"])
self.mox.ReplayAll()
name = self.pm._check_for_node()
diff --git a/nova/tests/baremetal/test_volume_driver.py b/nova/tests/virt/baremetal/test_volume_driver.py
index 24dadac94..24dadac94 100644
--- a/nova/tests/baremetal/test_volume_driver.py
+++ b/nova/tests/virt/baremetal/test_volume_driver.py
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/xenapi/__init__.py b/nova/tests/virt/libvirt/__init__.py
index 1dd02bdc1..a02a20177 100644
--- a/nova/tests/xenapi/__init__.py
+++ b/nova/tests/virt/libvirt/__init__.py
@@ -1,6 +1,6 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
-# Copyright (c) 2010 Citrix Systems, Inc.
+# Copyright (c) 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
@@ -13,8 +13,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/fake_imagebackend.py b/nova/tests/virt/libvirt/fake_imagebackend.py
index 48426505e..48426505e 100644
--- a/nova/tests/fake_imagebackend.py
+++ b/nova/tests/virt/libvirt/fake_imagebackend.py
diff --git a/nova/tests/fake_libvirt_utils.py b/nova/tests/virt/libvirt/fake_libvirt_utils.py
index ba00a7091..23b758e03 100644
--- a/nova/tests/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/fakelibvirt.py b/nova/tests/virt/libvirt/fakelibvirt.py
index 30c3e4d9c..9594757a8 100644
--- a/nova/tests/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/test_fakelibvirt.py b/nova/tests/virt/libvirt/test_fakelibvirt.py
index ee2008544..8fa2ffc63 100644
--- a/nova/tests/test_fakelibvirt.py
+++ b/nova/tests/virt/libvirt/test_fakelibvirt.py
@@ -18,7 +18,7 @@ from nova import test
from lxml import etree
-import nova.tests.fakelibvirt as libvirt
+import nova.tests.virt.libvirt.fakelibvirt as libvirt
def get_vm_xml(name="testname", uuid=None, source_type='file',
@@ -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/test_imagebackend.py b/nova/tests/virt/libvirt/test_imagebackend.py
index b5d64a218..fa708f4f4 100644
--- a/nova/tests/test_imagebackend.py
+++ b/nova/tests/virt/libvirt/test_imagebackend.py
@@ -23,8 +23,8 @@ from oslo.config import cfg
from nova import exception
from nova.openstack.common import uuidutils
from nova import test
-from nova.tests import fake_libvirt_utils
from nova.tests import fake_processutils
+from nova.tests.virt.libvirt import fake_libvirt_utils
from nova.virt.libvirt import imagebackend
CONF = cfg.CONF
@@ -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/test_imagecache.py b/nova/tests/virt/libvirt/test_imagecache.py
index 256732ace..bdc895474 100644
--- a/nova/tests/test_imagecache.py
+++ b/nova/tests/virt/libvirt/test_imagecache.py
@@ -945,7 +945,7 @@ class ImageCacheManagerTestCase(test.TestCase):
def test_compute_manager(self):
was = {'called': False}
- def fake_get_all(context, *args, **kwargs):
+ def fake_get_all_by_filters(context, *args, **kwargs):
was['called'] = True
return [{'image_ref': '1',
'host': CONF.host,
@@ -963,7 +963,8 @@ class ImageCacheManagerTestCase(test.TestCase):
with utils.tempdir() as tmpdir:
self.flags(instances_path=tmpdir)
- self.stubs.Set(db, 'instance_get_all', fake_get_all)
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ fake_get_all_by_filters)
compute = importutils.import_object(CONF.compute_manager)
self.flags(use_local=True, group='conductor')
compute.conductor_api = conductor.API()
diff --git a/nova/tests/test_libvirt.py b/nova/tests/virt/libvirt/test_libvirt.py
index 6d8332769..d46b08946 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/virt/libvirt/test_libvirt.py
@@ -45,10 +45,10 @@ from nova.openstack.common import jsonutils
from nova.openstack.common import loopingcall
from nova.openstack.common import uuidutils
from nova import test
-from nova.tests import fake_libvirt_utils
from nova.tests import fake_network
import nova.tests.image.fake
from nova.tests import matchers
+from nova.tests.virt.libvirt import fake_libvirt_utils
from nova import utils
from nova import version
from nova.virt.disk import api as disk
@@ -68,7 +68,7 @@ from nova.virt import netutils
try:
import libvirt
except ImportError:
- import nova.tests.fakelibvirt as libvirt
+ import nova.tests.virt.libvirt.fakelibvirt as libvirt
libvirt_driver.libvirt = libvirt
@@ -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 = {
@@ -351,7 +352,8 @@ class LibvirtConnTestCase(test.TestCase):
return FakeVirtDomain()
# Creating mocks
- volume_driver = 'iscsi=nova.tests.test_libvirt.FakeVolumeDriver'
+ volume_driver = ('iscsi=nova.tests.virt.libvirt.test_libvirt'
+ '.FakeVolumeDriver')
self.flags(libvirt_volume_drivers=[volume_driver])
fake = FakeLibvirtDriver()
# Customizing above fake if necessary
@@ -2152,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))
@@ -2263,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,
@@ -2466,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):
@@ -2610,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)
@@ -2705,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,
@@ -2716,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,
@@ -2725,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)
@@ -3175,13 +3181,13 @@ class LibvirtConnTestCase(test.TestCase):
fake_disks = {'fake1': [{'type': 'qcow2', 'path': '/somepath/disk1',
'virt_disk_size': '10737418240',
'backing_file': '/somepath/disk1',
- 'disk_size':'83886080',
- 'over_committed_disk_size':'10653532160'}],
+ 'disk_size': '83886080',
+ 'over_committed_disk_size': '10653532160'}],
'fake2': [{'type': 'raw', 'path': '/somepath/disk2',
'virt_disk_size': '0',
'backing_file': '/somepath/disk2',
- 'disk_size':'10737418240',
- 'over_committed_disk_size':'0'}]}
+ 'disk_size': '10737418240',
+ 'over_committed_disk_size': '0'}]}
def get_info(instance_name):
return jsonutils.dumps(fake_disks.get(instance_name))
@@ -4809,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'
@@ -4950,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. """
@@ -4959,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
@@ -4980,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):
@@ -4990,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)
@@ -5014,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
@@ -5026,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,
@@ -5062,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/test_libvirt_blockinfo.py b/nova/tests/virt/libvirt/test_libvirt_blockinfo.py
index aae5bec58..a43d0d5e0 100644
--- a/nova/tests/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/test_libvirt_config.py b/nova/tests/virt/libvirt/test_libvirt_config.py
index 8eed7136e..8eed7136e 100644
--- a/nova/tests/test_libvirt_config.py
+++ b/nova/tests/virt/libvirt/test_libvirt_config.py
diff --git a/nova/tests/test_libvirt_utils.py b/nova/tests/virt/libvirt/test_libvirt_utils.py
index 60f0682a8..60f0682a8 100644
--- a/nova/tests/test_libvirt_utils.py
+++ b/nova/tests/virt/libvirt/test_libvirt_utils.py
diff --git a/nova/tests/test_libvirt_vif.py b/nova/tests/virt/libvirt/test_libvirt_vif.py
index 0b661d147..c9c6aef12 100644
--- a/nova/tests/test_libvirt_vif.py
+++ b/nova/tests/virt/libvirt/test_libvirt_vif.py
@@ -20,7 +20,7 @@ from oslo.config import cfg
from nova import exception
from nova.network import model as network_model
from nova import test
-from nova.tests import fakelibvirt
+from nova.tests.virt.libvirt import fakelibvirt
from nova import utils
from nova.virt.libvirt import config as vconfig
from nova.virt.libvirt import vif
diff --git a/nova/tests/test_libvirt_volume.py b/nova/tests/virt/libvirt/test_libvirt_volume.py
index 6d2dc9dce..07a1a7b2f 100644
--- a/nova/tests/test_libvirt_volume.py
+++ b/nova/tests/virt/libvirt/test_libvirt_volume.py
@@ -23,7 +23,7 @@ from oslo.config import cfg
from nova import exception
from nova.storage import linuxscsi
from nova import test
-from nova.tests import fake_libvirt_utils
+from nova.tests.virt.libvirt import fake_libvirt_utils
from nova import utils
from nova.virt import fake
from nova.virt.libvirt import utils as libvirt_utils
@@ -444,10 +444,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 +533,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 +593,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/virt/powervm/__init__.py b/nova/tests/virt/powervm/__init__.py
new file mode 100644
index 000000000..d5d002224
--- /dev/null
+++ b/nova/tests/virt/powervm/__init__.py
@@ -0,0 +1,16 @@
+# 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.
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 395663600..c054b9624 100644
--- a/nova/tests/test_virt_drivers.py
+++ b/nova/tests/virt/test_virt_drivers.py
@@ -25,9 +25,9 @@ from nova import exception
from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova import test
-from nova.tests import fake_libvirt_utils
from nova.tests.image import fake as fake_image
from nova.tests import utils as test_utils
+from nova.tests.virt.libvirt import fake_libvirt_utils
from nova.virt import event as virtevent
from nova.virt import fake
@@ -67,9 +67,9 @@ class _FakeDriverBackendTestCase(object):
else:
self.saved_libvirt = None
- import nova.tests.fake_imagebackend as fake_imagebackend
- import nova.tests.fake_libvirt_utils as fake_libvirt_utils
- import nova.tests.fakelibvirt as fakelibvirt
+ import nova.tests.virt.libvirt.fake_imagebackend as fake_imagebackend
+ import nova.tests.virt.libvirt.fake_libvirt_utils as fake_libvirt_utils
+ import nova.tests.virt.libvirt.fakelibvirt as fakelibvirt
sys.modules['libvirt'] = fakelibvirt
import nova.virt.libvirt.driver
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..2691857fe 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)
@@ -381,6 +383,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_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 45ebfaab3..7dcb1cec8 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)
@@ -1188,7 +1192,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 +1393,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 +1428,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 +1467,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})
@@ -2117,8 +2135,9 @@ class XenAPIBWCountersTestCase(stubs.XenAPITestBase):
# TODO(salvatore-orlando): this class and
-# nova.tests.test_libvirt.IPTablesFirewallDriverTestCase share a lot of code.
-# Consider abstracting common code in a base class for firewall driver testing.
+# nova.tests.virt.test_libvirt.IPTablesFirewallDriverTestCase share a lot of
+# code. Consider abstracting common code in a base class for firewall driver
+# testing.
class XenAPIDom0IptablesFirewallTestCase(stubs.XenAPITestBase):
_in_rules = [
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 3020781c8..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. '
@@ -605,12 +603,6 @@ def is_int_like(val):
return False
-def is_valid_boolstr(val):
- """Check if the provided string is a valid bool string or not."""
- boolstrs = ('true', 'false', 'yes', 'no', 'y', 'n', '1', '0')
- return str(val).lower() in boolstrs
-
-
def is_valid_ipv4(address):
"""Verify that address represents a valid IPv4 address."""
try:
@@ -926,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))
@@ -1013,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:
@@ -1038,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:
@@ -1073,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
@@ -1098,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/db/sqlalchemy/migrate_repo/versions/007_drop_prov_mac_address.py b/nova/virt/baremetal/db/sqlalchemy/migrate_repo/versions/007_drop_prov_mac_address.py
new file mode 100644
index 000000000..eb6ae756c
--- /dev/null
+++ b/nova/virt/baremetal/db/sqlalchemy/migrate_repo/versions/007_drop_prov_mac_address.py
@@ -0,0 +1,36 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright (c) 2013 NTT DOCOMO, 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.
+
+from sqlalchemy import Column, MetaData, String, Table
+
+
+def upgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+
+ nodes = Table('bm_nodes', meta, autoload=True)
+ nodes.drop_column('prov_mac_address')
+
+
+def downgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+
+ nodes = Table('bm_nodes', meta, autoload=True)
+ nodes.create_column(Column('prov_mac_address', String(length=255)))
+
+ # NOTE(arata): The values held by prov_mac_address are lost in upgrade.
+ # So downgrade has no other choice but to set the column to NULL.
diff --git a/nova/virt/baremetal/db/sqlalchemy/models.py b/nova/virt/baremetal/db/sqlalchemy/models.py
index 61063f031..dbc9386ec 100644
--- a/nova/virt/baremetal/db/sqlalchemy/models.py
+++ b/nova/virt/baremetal/db/sqlalchemy/models.py
@@ -45,7 +45,6 @@ class BareMetalNode(BASE, models.NovaBase):
pm_address = Column(Text)
pm_user = Column(Text)
pm_password = Column(Text)
- prov_mac_address = Column(Text)
task_state = Column(String(255))
terminal_port = Column(Integer)
image_path = Column(String(255), nullable=True)
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 2c5def493..9fdec0e87 100755
--- a/nova/virt/disk/api.py
+++ b/nova/virt/disk/api.py
@@ -131,7 +131,8 @@ def can_resize_fs(image, size, use_cow=False):
"""Check whether we can resize contained file system."""
LOG.debug(_('Checking if we can resize image %(image)s. '
- 'size=%(size)s, CoW=%(use_cow)s'), locals())
+ 'size=%(size)s, CoW=%(use_cow)s'),
+ {'image': image, 'size': size, 'use_cow': use_cow})
# Check that we're increasing the size
virt_size = get_disk_size(image)
@@ -281,9 +282,10 @@ def inject_data(image, key=None, net=None, metadata=None, admin_password=None,
Raises an exception if a mandatory item can't be injected.
"""
LOG.debug(_("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")
- % locals())
+ "metadata=%(metadata)s admin_password=<SANITIZED> "
+ "files=%(files)s partition=%(partition)s use_cow=%(use_cow)s"),
+ {'image': image, 'key': key, 'net': net, 'metadata': metadata,
+ 'files': files, 'partition': partition, 'use_cow': use_cow})
fmt = "raw"
if use_cow:
fmt = "qcow2"
@@ -298,7 +300,7 @@ def inject_data(image, key=None, net=None, metadata=None, admin_password=None,
if inject_val:
raise
LOG.warn(_('Ignoring error injecting data into image '
- '(%(e)s)') % locals())
+ '(%(e)s)'), {'e': e})
return False
try:
@@ -317,7 +319,7 @@ def setup_container(image, container_dir, use_cow=False):
img = _DiskImage(image=image, use_cow=use_cow, mount_dir=container_dir)
if not img.mount():
LOG.error(_("Failed to mount container filesystem '%(image)s' "
- "on '%(target)s': %(errors)s") %
+ "on '%(target)s': %(errors)s"),
{"image": img, "target": container_dir,
"errors": img.errors})
raise exception.NovaException(img.errors)
@@ -372,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)') % locals())
+ '(%(e)s)'), {'e': e, 'inject': inject})
status = False
return status
@@ -383,8 +385,8 @@ def _inject_files_into_fs(files, fs):
def _inject_file_into_fs(fs, path, contents, append=False):
- LOG.debug(_("Inject file fs=%(fs)s path=%(path)s append=%(append)s") %
- locals())
+ LOG.debug(_("Inject file fs=%(fs)s path=%(path)s append=%(append)s"),
+ {'fs': fs, 'path': path, 'append': append})
if append:
fs.append_file(path, contents)
else:
@@ -392,8 +394,8 @@ def _inject_file_into_fs(fs, path, contents, append=False):
def _inject_metadata_into_fs(metadata, fs):
- LOG.debug(_("Inject metadata fs=%(fs)s metadata=%(metadata)s") %
- locals())
+ LOG.debug(_("Inject metadata fs=%(fs)s metadata=%(metadata)s"),
+ {'fs': fs, 'metadata': metadata})
metadata = dict([(m['key'], m['value']) for m in metadata])
_inject_file_into_fs(fs, 'meta.js', jsonutils.dumps(metadata))
@@ -433,8 +435,7 @@ def _inject_key_into_fs(key, fs):
fs is the path to the base of the filesystem into which to inject the key.
"""
- LOG.debug(_("Inject key fs=%(fs)s key=%(key)s") %
- locals())
+ LOG.debug(_("Inject key fs=%(fs)s key=%(key)s"), {'fs': fs, 'key': key})
sshdir = os.path.join('root', '.ssh')
fs.make_path(sshdir)
fs.set_ownership(sshdir, "root", "root")
@@ -462,8 +463,7 @@ def _inject_net_into_fs(net, fs):
net is the contents of /etc/network/interfaces.
"""
- LOG.debug(_("Inject key fs=%(fs)s net=%(net)s") %
- locals())
+ LOG.debug(_("Inject key fs=%(fs)s net=%(net)s"), {'fs': fs, 'net': net})
netdir = os.path.join('etc', 'network')
fs.make_path(netdir)
fs.set_ownership(netdir, "root", "root")
@@ -489,8 +489,7 @@ def _inject_admin_password_into_fs(admin_passwd, fs):
# necessary changes, and then copy them back.
LOG.debug(_("Inject admin password fs=%(fs)s "
- "admin_passwd=ha-ha-not-telling-you") %
- locals())
+ "admin_passwd=<SANITIZED>"), {'fs': fs})
admin_user = 'root'
fd, tmp_passwd = tempfile.mkstemp()
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..1b65571a5 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):
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/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..4a11e2704 100644
--- a/nova/virt/libvirt/volume.py
+++ b/nova/virt/libvirt/volume.py
@@ -239,8 +239,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 +252,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 +476,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 +518,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 +560,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 +575,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 +598,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 +639,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 +710,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 +724,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 +741,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 +753,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 +775,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/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..538b498b6 100644
--- a/nova/virt/vmwareapi/vmops.py
+++ b/nova/virt/vmwareapi/vmops.py
@@ -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/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..56a4b18d8 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -176,12 +176,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 +231,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 +260,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 +296,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 +508,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 +573,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 +652,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 +698,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 +873,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 +1056,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 +1065,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)
@@ -1561,7 +1564,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()
diff --git a/openstack-common.conf b/openstack-common.conf
index 24c306181..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
@@ -17,6 +18,8 @@ module=local
module=lockutils
module=log
module=loopingcall
+module=memorycache
+module=middleware.correlation_id
module=network_utils
module=notifier
module=patch_tox_venv
@@ -27,7 +30,9 @@ module=processutils
module=redhat-eventlet.patch
module=rootwrap
module=rpc
+module=service
module=strutils
+module=threadgroup
module=timeutils
module=uuidutils
diff --git a/tools/pip-requires b/requirements.txt
index d9fbd1b67..7db3a2a0b 100644
--- a/tools/pip-requires
+++ b/requirements.txt
@@ -22,6 +22,7 @@ pyasn1
Babel>=0.9.6
iso8601>=0.1.4
httplib2
+requests>=1.1,<1.2.1 # order-dependent python-cinderclient req cap, bug 1182271
python-cinderclient>=1.0.1
python-quantumclient>=2.2.0,<3.0.0
python-glanceclient>=0.5.0,<2
diff --git a/run_tests.sh b/run_tests.sh
index 258483ea2..c8513749f 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -172,8 +172,8 @@ function copy_subunit_log {
}
function run_pep8 {
- echo "Running PEP8 and HACKING compliance check..."
- bash -c "${wrapper} tools/run_pep8.sh"
+ echo "Running flake8 ..."
+ bash -c "${wrapper} flake8"
}
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 cb5d54bb3..1bf372b69 100644
--- a/tools/test-requires
+++ b/test-requirements.txt
@@ -1,6 +1,12 @@
# Packages needed for dev testing
distribute>=0.6.24
+# Install bounded pep8/pyflakes first, then let flake8 install
+pep8==1.4.5
+pyflakes==0.7.2
+flake8==2.0
+hacking>=0.5.3,<0.6
+
coverage>=3.6
discover
feedparser
@@ -8,8 +14,6 @@ fixtures>=0.3.12
mox==0.5.3
MySQL-python
psycopg2
-pep8==1.3.3
-pyflakes
pylint==0.25.2
python-subunit
setuptools_git>=0.4
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/flakes.py b/tools/flakes.py
deleted file mode 100644
index 191bd6eab..000000000
--- a/tools/flakes.py
+++ /dev/null
@@ -1,24 +0,0 @@
-"""
- wrapper for pyflakes to ignore gettext based warning:
- "undefined name '_'"
-
- Synced in from openstack-common
-"""
-
-__all__ = ['main']
-
-import __builtin__ as builtins
-import sys
-
-import pyflakes.api
-from pyflakes import checker
-
-
-def main():
- checker.Checker.builtIns = (set(dir(builtins)) |
- set(['_']) |
- set(checker._MAGIC_GLOBALS))
- sys.exit(pyflakes.api.main())
-
-if __name__ == "__main__":
- main()
diff --git a/tools/hacking.py b/tools/hacking.py
deleted file mode 100755
index 94053991e..000000000
--- a/tools/hacking.py
+++ /dev/null
@@ -1,670 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2012, Cloudscaling
-# 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.
-
-"""nova HACKING file compliance testing
-
-Built on top of pep8.py
-"""
-
-import gettext
-import imp
-import inspect
-import logging
-import os
-import re
-import subprocess
-import sys
-import tokenize
-import traceback
-
-import pep8
-
-# Don't need this for testing
-logging.disable('LOG')
-
-#N1xx comments
-#N2xx except
-#N3xx imports
-#N4xx docstrings
-#N5xx dictionaries/lists
-#N6xx calling methods
-#N7xx localization
-#N8xx git commit messages
-#N9xx other
-
-IMPORT_EXCEPTIONS = ['sqlalchemy', 'migrate', 'nova.db.sqlalchemy.session',
- 'nova.db.sqlalchemy.migration.versioning_api']
-# Paste is missing a __init__ in top level directory
-START_DOCSTRING_TRIPLE = ['u"""', 'r"""', '"""', "u'''", "r'''", "'''"]
-END_DOCSTRING_TRIPLE = ['"""', "'''"]
-VERBOSE_MISSING_IMPORT = os.getenv('HACKING_VERBOSE_MISSING_IMPORT', 'False')
-
-_missingImport = set([])
-
-
-# Monkey patch broken excluded filter in pep8
-# See https://github.com/jcrocholl/pep8/pull/111
-def excluded(self, filename):
- """Check if options.exclude contains a pattern that matches filename."""
- basename = os.path.basename(filename)
- return any((pep8.filename_match(filename, self.options.exclude,
- default=False),
- pep8.filename_match(basename, self.options.exclude,
- default=False)))
-
-
-def input_dir(self, dirname):
- """Check all files in this directory and all subdirectories."""
- dirname = dirname.rstrip('/')
- if self.excluded(dirname):
- return 0
- counters = self.options.report.counters
- verbose = self.options.verbose
- filepatterns = self.options.filename
- runner = self.runner
- for root, dirs, files in os.walk(dirname):
- if verbose:
- print('directory ' + root)
- counters['directories'] += 1
- for subdir in sorted(dirs):
- if self.excluded(os.path.join(root, subdir)):
- dirs.remove(subdir)
- for filename in sorted(files):
- # contain a pattern that matches?
- if ((pep8.filename_match(filename, filepatterns) and
- not self.excluded(filename))):
- runner(os.path.join(root, filename))
-
-
-def is_import_exception(mod):
- return (mod in IMPORT_EXCEPTIONS or
- any(mod.startswith(m + '.') for m in IMPORT_EXCEPTIONS))
-
-
-def import_normalize(line):
- # convert "from x import y" to "import x.y"
- # handle "from x import y as z" to "import x.y as z"
- split_line = line.split()
- if ("import" in line and line.startswith("from ") and "," not in line and
- split_line[2] == "import" and split_line[3] != "*" and
- split_line[1] != "__future__" and
- (len(split_line) == 4 or
- (len(split_line) == 6 and split_line[4] == "as"))):
- return "import %s.%s" % (split_line[1], split_line[3])
- else:
- return line
-
-
-def nova_todo_format(physical_line, tokens):
- """Check for 'TODO()'.
-
- nova HACKING guide recommendation for TODO:
- Include your name with TODOs as in "#TODO(termie)"
-
- Okay: #TODO(sdague)
- N101: #TODO fail
- N101: #TODO (jogo) fail
- """
- # TODO(sdague): TODO check shouldn't fail inside of space
- pos = physical_line.find('TODO')
- pos1 = physical_line.find('TODO(')
- pos2 = physical_line.find('#') # make sure it's a comment
- if (pos != pos1 and pos2 >= 0 and pos2 < pos and len(tokens) == 0):
- return pos, "N101: Use TODO(NAME)"
-
-
-def nova_except_format(logical_line):
- r"""Check for 'except:'.
-
- nova HACKING guide recommends not using except:
- Do not write "except:", use "except Exception:" at the very least
-
- Okay: except Exception:
- N201: except:
- """
- if logical_line.startswith("except:"):
- yield 6, "N201: no 'except:' at least use 'except Exception:'"
-
-
-def nova_except_format_assert(logical_line):
- r"""Check for 'assertRaises(Exception'.
-
- nova HACKING guide recommends not using assertRaises(Exception...):
- Do not use overly broad Exception type
-
- Okay: self.assertRaises(NovaException)
- N202: self.assertRaises(Exception)
- """
- if logical_line.startswith("self.assertRaises(Exception"):
- yield 1, "N202: assertRaises Exception too broad"
-
-
-modules_cache = dict((mod, True) for mod in tuple(sys.modules.keys())
- + sys.builtin_module_names)
-
-RE_RELATIVE_IMPORT = re.compile('^from\s*[.]')
-
-
-def nova_import_rules(logical_line):
- r"""Check for imports.
-
- nova HACKING guide recommends one import per line:
- Do not import more than one module per line
-
- Examples:
- Okay: from nova.compute import api
- N301: from nova.compute import api, utils
-
-
- Imports should usually be on separate lines.
-
- nova HACKING guide recommends importing only modules:
- Do not import objects, only modules
-
- Examples:
- Okay: from os import path
- Okay: from os import path as p
- Okay: from os import (path as p)
- Okay: import os.path
- Okay: from nova.compute import rpcapi
- N302: from os.path import dirname as dirname2
- N302: from os.path import (dirname as dirname2)
- N303: from os.path import *
- N304: from .compute import rpcapi
- """
- #NOTE(afazekas): An old style relative import example will not be able to
- # pass the doctest, since the relativity depends on the file's locality
-
- def is_module_for_sure(mod, search_path=sys.path):
- mod = mod.replace('(', '') # Ignore parentheses
- try:
- mod_name = mod
- while '.' in mod_name:
- pack_name, _sep, mod_name = mod.partition('.')
- f, p, d = imp.find_module(pack_name, search_path)
- search_path = [p]
- imp.find_module(mod_name, search_path)
- except ImportError:
- try:
- # NOTE(vish): handle namespace modules
- module = __import__(mod)
- except ImportError, exc:
- # NOTE(vish): the import error might be due
- # to a missing dependency
- missing = str(exc).split()[-1]
- if (missing != mod.split('.')[-1] or
- "cannot import" in str(exc)):
- _missingImport.add(missing)
- return True
- return False
- except Exception, exc:
- # NOTE(jogo) don't stack trace if unexpected import error,
- # log and continue.
- traceback.print_exc()
- return False
- return True
-
- def is_module(mod):
- """Checks for non module imports."""
- if mod in modules_cache:
- return modules_cache[mod]
- res = is_module_for_sure(mod)
- modules_cache[mod] = res
- return res
-
- current_path = os.path.dirname(pep8.current_file)
- current_mod = os.path.basename(pep8.current_file)
- if current_mod[-3:] == ".py":
- current_mod = current_mod[:-3]
-
- split_line = logical_line.split()
- split_line_len = len(split_line)
- if (split_line[0] in ('import', 'from') and split_line_len > 1 and
- not is_import_exception(split_line[1])):
- pos = logical_line.find(',')
- if pos != -1:
- if split_line[0] == 'from':
- yield pos, "N301: one import per line"
- return # ',' is not supported by the N302 checker yet
- pos = logical_line.find('*')
- if pos != -1:
- yield pos, "N303: No wildcard (*) import."
- return
-
- if split_line_len in (2, 4, 6) and split_line[1] != "__future__":
- if 'from' == split_line[0] and split_line_len > 3:
- mod = '.'.join((split_line[1], split_line[3]))
- if is_import_exception(mod):
- return
- if RE_RELATIVE_IMPORT.search(logical_line):
- yield logical_line.find('.'), ("N304: No "
- "relative imports. '%s' is a relative import"
- % logical_line)
- return
-
- if not is_module(mod):
- yield 0, ("N302: import only modules."
- "'%s' does not import a module" % logical_line)
- return
-
- #NOTE(afazekas): import searches first in the package
- # The import keyword just imports modules
- # The guestfs module now imports guestfs
- mod = split_line[1]
- if (current_mod != mod and
- not is_module(mod) and
- is_module_for_sure(mod, [current_path])):
- yield 0, ("N304: No relative imports."
- " '%s' is a relative import"
- % logical_line)
-
-
-#TODO(jogo): import template: N305
-
-
-def nova_import_alphabetical(logical_line, blank_lines, previous_logical,
- indent_level, previous_indent_level):
- r"""Check for imports in alphabetical order.
-
- nova HACKING guide recommendation for imports:
- imports in human alphabetical order
-
- Okay: import os\nimport sys\n\nimport nova\nfrom nova import test
- N306: import sys\nimport os
- """
- # handle import x
- # use .lower since capitalization shouldn't dictate order
- split_line = import_normalize(logical_line.strip()).lower().split()
- split_previous = import_normalize(previous_logical.strip()).lower().split()
-
- if blank_lines < 1 and indent_level == previous_indent_level:
- length = [2, 4]
- if (len(split_line) in length and len(split_previous) in length and
- split_line[0] == "import" and split_previous[0] == "import"):
- if split_line[1] < split_previous[1]:
- yield (0, "N306: imports not in alphabetical order (%s, %s)"
- % (split_previous[1], split_line[1]))
-
-
-def nova_import_no_db_in_virt(logical_line, filename):
- """Check for db calls from nova/virt
-
- As of grizzly-2 all the database calls have been removed from
- nova/virt, and we want to keep it that way.
-
- N307
- """
- if "nova/virt" in filename and not filename.endswith("fake.py"):
- if logical_line.startswith("from nova import db"):
- yield (0, "N307: nova.db import not allowed in nova/virt/*")
-
-
-def is_docstring(physical_line, previous_logical):
- """Return True if found docstring
- 'A docstring is a string literal that occurs as the first statement in a
- module, function, class,'
- http://www.python.org/dev/peps/pep-0257/#what-is-a-docstring
- """
- line = physical_line.lstrip()
- start = max([line.find(i) for i in START_DOCSTRING_TRIPLE])
- end = max([line[-4:-1] == i for i in END_DOCSTRING_TRIPLE])
- if (previous_logical.startswith("def ") or
- previous_logical.startswith("class ")):
- if start is 0:
- return True
- else:
- # Handle multi line comments
- return end and start in (-1, len(line) - 4)
-
-
-def nova_docstring_start_space(physical_line, previous_logical):
- r"""Check for docstring not start with space.
-
- nova HACKING guide recommendation for docstring:
- Docstring should not start with space
-
- Okay: def foo():\n '''This is good.'''
- Okay: def foo():\n a = ''' This is not a docstring.'''
- Okay: def foo():\n pass\n ''' This is not.'''
- N401: def foo():\n ''' This is not.'''
- """
- # short circuit so that we don't fail on our own fail test
- # when running under external pep8
- if physical_line.find("N401: def foo()") != -1:
- return
-
- # it's important that we determine this is actually a docstring,
- # and not a doc block used somewhere after the first line of a
- # function def
- if is_docstring(physical_line, previous_logical):
- pos = max([physical_line.find(i) for i in START_DOCSTRING_TRIPLE])
- if physical_line[pos + 3] == ' ':
- return (pos, "N401: docstring should not start with"
- " a space")
-
-
-def nova_docstring_one_line(physical_line, previous_logical):
- r"""Check one line docstring end.
-
- nova HACKING guide recommendation for one line docstring:
- A one line docstring looks like this and ends in punctuation.
-
- Okay: def foo():\n '''This is good.'''
- Okay: def foo():\n '''This is good too!'''
- Okay: def foo():\n '''How about this?'''
- Okay: def foo():\n a = '''This is not a docstring'''
- Okay: def foo():\n pass\n '''This is not a docstring'''
- Okay: class Foo:\n pass\n '''This is not a docstring'''
- N402: def foo():\n '''This is not'''
- N402: def foo():\n '''Bad punctuation,'''
- N402: class Foo:\n '''Bad punctuation,'''
- """
- #TODO(jogo) make this apply to multi line docstrings as well
- line = physical_line.lstrip()
- if is_docstring(physical_line, previous_logical):
- pos = max([line.find(i) for i in START_DOCSTRING_TRIPLE]) # start
- end = max([line[-4:-1] == i for i in END_DOCSTRING_TRIPLE]) # end
-
- if pos != -1 and end and len(line) > pos + 4:
- if line[-5] not in ['.', '?', '!']:
- return pos, "N402: one line docstring needs punctuation."
-
-
-def nova_docstring_multiline_end(physical_line, previous_logical, tokens):
- r"""Check multi line docstring end.
-
- nova HACKING guide recommendation for docstring:
- Docstring should end on a new line
-
- Okay: '''foobar\nfoo\nbar\n'''
- Okay: def foo():\n '''foobar\nfoo\nbar\n'''
- Okay: class Foo:\n '''foobar\nfoo\nbar\n'''
- Okay: def foo():\n a = '''not\na\ndocstring'''
- Okay: def foo():\n pass\n'''foobar\nfoo\nbar\n d'''
- N403: def foo():\n '''foobar\nfoo\nbar\ndocstring'''
- N403: class Foo:\n '''foobar\nfoo\nbar\ndocstring'''\n\n
- """
- # if find OP tokens, not a docstring
- ops = [t for t, _, _, _, _ in tokens if t == tokenize.OP]
- if (is_docstring(physical_line, previous_logical) and len(tokens) > 0 and
- len(ops) == 0):
- pos = max(physical_line.find(i) for i in END_DOCSTRING_TRIPLE)
- if physical_line.strip() not in START_DOCSTRING_TRIPLE:
- return (pos, "N403: multi line docstring end on new line")
-
-
-def nova_docstring_multiline_start(physical_line, previous_logical, tokens):
- r"""Check multi line docstring start with summary.
-
- nova HACKING guide recommendation for docstring:
- Docstring should start with A multi line docstring has a one-line summary
-
- Okay: '''foobar\nfoo\nbar\n'''
- Okay: def foo():\n a = '''\nnot\na docstring\n'''
- N404: def foo():\n'''\nfoo\nbar\n'''\n\n
- """
- if is_docstring(physical_line, previous_logical):
- pos = max([physical_line.find(i) for i in START_DOCSTRING_TRIPLE])
- # start of docstring when len(tokens)==0
- if len(tokens) == 0 and pos != -1 and len(physical_line) == pos + 4:
- if physical_line.strip() in START_DOCSTRING_TRIPLE:
- return (pos, "N404: multi line docstring "
- "should start with a summary")
-
-
-def nova_no_cr(physical_line):
- r"""Check that we only use newlines not carriage returns.
-
- Okay: import os\nimport sys
- # pep8 doesn't yet replace \r in strings, will work on an
- # upstream fix
- N901 import os\r\nimport sys
- """
- pos = physical_line.find('\r')
- if pos != -1 and pos == (len(physical_line) - 2):
- return (pos, "N901: Windows style line endings not allowed in code")
-
-
-FORMAT_RE = re.compile("%(?:"
- "%|" # Ignore plain percents
- "(\(\w+\))?" # mapping key
- "([#0 +-]?" # flag
- "(?:\d+|\*)?" # width
- "(?:\.\d+)?" # precision
- "[hlL]?" # length mod
- "\w))") # type
-
-
-class LocalizationError(Exception):
- pass
-
-
-def check_i18n():
- """Generator that checks token stream for localization errors.
-
- Expects tokens to be ``send``ed one by one.
- Raises LocalizationError if some error is found.
- """
- while True:
- try:
- token_type, text, _, _, line = yield
- except GeneratorExit:
- return
-
- if (token_type == tokenize.NAME and text == "_" and
- not line.startswith('def _(msg):')):
-
- while True:
- token_type, text, start, _, _ = yield
- if token_type != tokenize.NL:
- break
- if token_type != tokenize.OP or text != "(":
- continue # not a localization call
-
- format_string = ''
- while True:
- token_type, text, start, _, _ = yield
- if token_type == tokenize.STRING:
- format_string += eval(text)
- elif token_type == tokenize.NL:
- pass
- else:
- break
-
- if not format_string:
- raise LocalizationError(start,
- "N701: Empty localization string")
- if token_type != tokenize.OP:
- raise LocalizationError(start,
- "N701: Invalid localization call")
- if text != ")":
- if text == "%":
- raise LocalizationError(start,
- "N702: Formatting operation should be outside"
- " of localization method call")
- elif text == "+":
- raise LocalizationError(start,
- "N702: Use bare string concatenation instead"
- " of +")
- else:
- raise LocalizationError(start,
- "N702: Argument to _ must be just a string")
-
- format_specs = FORMAT_RE.findall(format_string)
- positional_specs = [(key, spec) for key, spec in format_specs
- if not key and spec]
- # not spec means %%, key means %(smth)s
- if len(positional_specs) > 1:
- raise LocalizationError(start,
- "N703: Multiple positional placeholders")
-
-
-def nova_localization_strings(logical_line, tokens):
- r"""Check localization in line.
-
- Okay: _("This is fine")
- Okay: _("This is also fine %s")
- N701: _('')
- N702: _("Bob" + " foo")
- N702: _("Bob %s" % foo)
- # N703 check is not quite right, disabled by removing colon
- N703 _("%s %s" % (foo, bar))
- """
- # TODO(sdague) actually get these tests working
- gen = check_i18n()
- next(gen)
- try:
- map(gen.send, tokens)
- gen.close()
- except LocalizationError as e:
- yield e.args
-
-#TODO(jogo) Dict and list objects
-
-
-def nova_is_not(logical_line):
- r"""Check localization in line.
-
- Okay: if x is not y
- N901: if not X is Y
- N901: if not X.B is Y
- """
- split_line = logical_line.split()
- if (len(split_line) == 5 and split_line[0] == 'if' and
- split_line[1] == 'not' and split_line[3] == 'is'):
- yield (logical_line.find('not'), "N901: Use the 'is not' "
- "operator for when testing for unequal identities")
-
-
-def nova_not_in(logical_line):
- r"""Check localization in line.
-
- Okay: if x not in y
- Okay: if not (X in Y or X is Z)
- Okay: if not (X in Y)
- N902: if not X in Y
- N902: if not X.B in Y
- """
- split_line = logical_line.split()
- if (len(split_line) == 5 and split_line[0] == 'if' and
- split_line[1] == 'not' and split_line[3] == 'in' and not
- split_line[2].startswith('(')):
- yield (logical_line.find('not'), "N902: Use the 'not in' "
- "operator for collection membership evaluation")
-
-current_file = ""
-
-
-def readlines(filename):
- """Record the current file being tested."""
- pep8.current_file = filename
- return open(filename).readlines()
-
-
-def add_nova():
- """Monkey patch in nova guidelines.
-
- Look for functions that start with nova_ and have arguments
- and add them to pep8 module
- Assumes you know how to write pep8.py checks
- """
- for name, function in globals().items():
- if not inspect.isfunction(function):
- continue
- args = inspect.getargspec(function)[0]
- if args and name.startswith("nova"):
- exec("pep8.%s = %s" % (name, name))
-
-
-def once_git_check_commit_title():
- """Check git commit messages.
-
- nova HACKING recommends not referencing a bug or blueprint in first line,
- it should provide an accurate description of the change
- N801
- N802 Title limited to 72 chars
- """
- #Get title of most recent commit
-
- subp = subprocess.Popen(['git', 'log', '--no-merges', '--pretty=%s', '-1'],
- stdout=subprocess.PIPE)
- title = subp.communicate()[0]
- if subp.returncode:
- raise Exception("git log failed with code %s" % subp.returncode)
-
- #From https://github.com/openstack/openstack-ci-puppet
- # /blob/master/modules/gerrit/manifests/init.pp#L74
- #Changeid|bug|blueprint
- git_keywords = (r'(I[0-9a-f]{8,40})|'
- '([Bb]ug|[Ll][Pp])[\s\#:]*(\d+)|'
- '([Bb]lue[Pp]rint|[Bb][Pp])[\s\#:]*([A-Za-z0-9\\-]+)')
- GIT_REGEX = re.compile(git_keywords)
-
- error = False
- #NOTE(jogo) if match regex but over 3 words, acceptable title
- if GIT_REGEX.search(title) is not None and len(title.split()) <= 3:
- print ("N801: git commit title ('%s') should provide an accurate "
- "description of the change, not just a reference to a bug "
- "or blueprint" % title.strip())
- error = True
- # HACKING.rst recommends commit titles 50 chars or less, but enforces
- # a 72 character limit
- if len(title.decode('utf-8')) > 72:
- print ("N802: git commit title ('%s') should be under 50 chars"
- % title.strip())
- error = True
- return error
-
-imports_on_separate_lines_N301_compliant = r"""
- Imports should usually be on separate lines.
-
- Okay: import os\nimport sys
- E401: import sys, os
-
- N301: from subprocess import Popen, PIPE
- Okay: from myclas import MyClass
- Okay: from foo.bar.yourclass import YourClass
- Okay: import myclass
- Okay: import foo.bar.yourclass
- """
-
-if __name__ == "__main__":
- gettext.install('nova', unicode=1)
- #include nova path
- sys.path.append(os.getcwd())
- #Run once tests (not per line)
- once_error = once_git_check_commit_title()
- #NOVA error codes start with an N
- pep8.SELFTEST_REGEX = re.compile(r'(Okay|[EWN]\d{3}):\s(.*)')
- pep8.ERRORCODE_REGEX = re.compile(r'[EWN]\d{3}')
- add_nova()
- pep8.current_file = current_file
- pep8.readlines = readlines
- pep8.StyleGuide.excluded = excluded
- pep8.StyleGuide.input_dir = input_dir
- # we need to kill this doctring otherwise the self tests fail
- pep8.imports_on_separate_lines.__doc__ = \
- imports_on_separate_lines_N301_compliant
-
- try:
- pep8._main()
- sys.exit(once_error)
- finally:
- if len(_missingImport) > 0:
- print >> sys.stderr, ("%i imports missing in this test environment"
- % len(_missingImport))
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/tools/run_pep8.sh b/tools/run_pep8.sh
deleted file mode 100755
index 7c2ec0130..000000000
--- a/tools/run_pep8.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-set -e
-# This is used by run_tests.sh and tox.ini
-python tools/hacking.py --doctest
-
-# Until all these issues get fixed, ignore.
-PEP8='python tools/hacking.py --ignore=E12,E711,E721,E712,N303,N403,N404'
-
-EXCLUDE='--exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*'
-EXCLUDE+=',*egg,build,./plugins/xenserver/networking/etc/xensource/scripts'
-EXCLUDE+=',./plugins/xenserver/xenapi/etc/xapi.d/plugins'
-${PEP8} ${EXCLUDE} .
-
-SCRIPT_ROOT=$(echo $(cd "$(dirname $0)"; pwd) | sed s/\\/tools//)
-
-SCRIPTS_PATH=${SCRIPT_ROOT}/plugins/xenserver/networking/etc/xensource/scripts
-PYTHONPATH=${SCRIPTS_PATH} ${PEP8} ./plugins/xenserver/networking
-
-# NOTE(sirp): Also check Dom0 plugins w/o .py extension
-PLUGINS_PATH=${SCRIPT_ROOT}/plugins/xenserver/xenapi/etc/xapi.d/plugins
-PYTHONPATH=${PLUGINS_PATH} ${PEP8} ./plugins/xenserver/xenapi \
- `find plugins/xenserver/xenapi/etc/xapi.d/plugins -type f -perm +111`
-
-! pyflakes nova/ | grep "imported but unused\|redefinition of function\|undefined name '" |
- grep -v "undefined name '_'"
diff --git a/tox.ini b/tox.ini
index ca135209b..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}'
@@ -18,18 +18,14 @@ sitepackages = True
downloadcache = ~/cache/pip
[testenv:pep8]
-commands = bash tools/run_pep8.sh
+sitepackages = False
+commands =
+ flake8 {posargs}
[testenv:pylint]
setenv = VIRTUAL_ENV={envdir}
-deps = -r{toxinidir}/tools/pip-requires
- pylint==0.26.0
commands = bash tools/lintstack.sh
-[testenv:pyflakes]
-deps = pyflakes
-commands = python tools/flakes.py nova
-
[testenv:cover]
# Also do not run test_coverage_ext tests while gathering coverage as those
# tests conflict with coverage.
@@ -41,3 +37,11 @@ commands =
[testenv:venv]
commands = {posargs}
+
+[flake8]
+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
+
+[hacking]
+local-check-factory = nova.hacking.checks.factory