another merge
This commit is contained in:
		@@ -1,59 +0,0 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2010 United States Government as represented by the
 | 
			
		||||
# Administrator of the National Aeronautics and Space Administration.
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
  Daemon for Nova RRD based instance resource monitoring.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import gettext
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
from twisted.application import service
 | 
			
		||||
 | 
			
		||||
# If ../nova/__init__.py exists, add ../ to Python search path, so that
 | 
			
		||||
# it will override what happens to be installed in /usr/(local/)lib/python...
 | 
			
		||||
possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
 | 
			
		||||
                                   os.pardir,
 | 
			
		||||
                                   os.pardir))
 | 
			
		||||
if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')):
 | 
			
		||||
    sys.path.insert(0, possible_topdir)
 | 
			
		||||
 | 
			
		||||
gettext.install('nova', unicode=1)
 | 
			
		||||
 | 
			
		||||
from nova import log as logging
 | 
			
		||||
from nova import utils
 | 
			
		||||
from nova import twistd
 | 
			
		||||
from nova.compute import monitor
 | 
			
		||||
 | 
			
		||||
LOG = logging.getLogger('nova.instancemonitor')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    utils.default_flagfile()
 | 
			
		||||
    twistd.serve(__file__)
 | 
			
		||||
 | 
			
		||||
if __name__ == '__builtin__':
 | 
			
		||||
    LOG.warn(_('Starting instance monitor'))
 | 
			
		||||
    # pylint: disable=C0103
 | 
			
		||||
    monitor = monitor.InstanceMonitor()
 | 
			
		||||
 | 
			
		||||
    # This is the parent service that twistd will be looking for when it
 | 
			
		||||
    # parses this file, return it so that we can get it into globals below
 | 
			
		||||
    application = service.Application('nova-instancemonitor')
 | 
			
		||||
    monitor.setServiceParent(application)
 | 
			
		||||
@@ -81,7 +81,6 @@ class LogReader(object):
 | 
			
		||||
                if level == 'ERROR':
 | 
			
		||||
                    self.handle_logged_error(line)
 | 
			
		||||
                elif level == '[-]' and self.last_error:
 | 
			
		||||
                    # twisted stack trace line
 | 
			
		||||
                    clean_line = " ".join(line.split(" ")[6:])
 | 
			
		||||
                    self.last_error.trace = self.last_error.trace + clean_line
 | 
			
		||||
                else:
 | 
			
		||||
 
 | 
			
		||||
@@ -662,8 +662,9 @@ class NetworkCommands(object):
 | 
			
		||||
        # check for certain required inputs
 | 
			
		||||
        if not label:
 | 
			
		||||
            raise exception.NetworkNotCreated(req='--label')
 | 
			
		||||
        if not fixed_range_v4:
 | 
			
		||||
            raise exception.NetworkNotCreated(req='--fixed_range_v4')
 | 
			
		||||
        if not (fixed_range_v4 or fixed_range_v6):
 | 
			
		||||
            req = '--fixed_range_v4 or --fixed_range_v6'
 | 
			
		||||
            raise exception.NetworkNotCreated(req=req)
 | 
			
		||||
 | 
			
		||||
        bridge = bridge or FLAGS.flat_network_bridge
 | 
			
		||||
        if not bridge:
 | 
			
		||||
@@ -689,16 +690,6 @@ class NetworkCommands(object):
 | 
			
		||||
            if FLAGS.network_manager in interface_required:
 | 
			
		||||
                raise exception.NetworkNotCreated(req='--bridge_interface')
 | 
			
		||||
 | 
			
		||||
        if FLAGS.use_ipv6:
 | 
			
		||||
            fixed_range_v6 = fixed_range_v6 or FLAGS.fixed_range_v6
 | 
			
		||||
            if not fixed_range_v6:
 | 
			
		||||
                raise exception.NetworkNotCreated(req='with use_ipv6, '
 | 
			
		||||
                                                      '--fixed_range_v6')
 | 
			
		||||
            gateway_v6 = gateway_v6 or FLAGS.gateway_v6
 | 
			
		||||
            if not gateway_v6:
 | 
			
		||||
                raise exception.NetworkNotCreated(req='with use_ipv6, '
 | 
			
		||||
                                                      '--gateway_v6')
 | 
			
		||||
 | 
			
		||||
        # sanitize other input using FLAGS if necessary
 | 
			
		||||
        if not num_networks:
 | 
			
		||||
            num_networks = FLAGS.num_networks
 | 
			
		||||
@@ -735,8 +726,8 @@ class NetworkCommands(object):
 | 
			
		||||
    def list(self):
 | 
			
		||||
        """List all created networks"""
 | 
			
		||||
        print "%-18s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s" % (
 | 
			
		||||
                                                  _('network'),
 | 
			
		||||
                                                  _('netmask'),
 | 
			
		||||
                                                  _('IPv4'),
 | 
			
		||||
                                                  _('IPv6'),
 | 
			
		||||
                                                  _('start address'),
 | 
			
		||||
                                                  _('DNS1'),
 | 
			
		||||
                                                  _('DNS2'),
 | 
			
		||||
@@ -745,7 +736,7 @@ class NetworkCommands(object):
 | 
			
		||||
        for network in db.network_get_all(context.get_admin_context()):
 | 
			
		||||
            print "%-18s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s" % (
 | 
			
		||||
                                        network.cidr,
 | 
			
		||||
                                        network.netmask,
 | 
			
		||||
                                        network.cidr_v6,
 | 
			
		||||
                                        network.dhcp_start,
 | 
			
		||||
                                        network.dns1,
 | 
			
		||||
                                        network.dns2,
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
#    under the License.
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
  Twisted daemon for nova objectstore. Supports S3 API.
 | 
			
		||||
  Daemon for nova objectstore. Supports S3 API.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import gettext
 | 
			
		||||
 
 | 
			
		||||
@@ -80,6 +80,10 @@ def notify(publisher_id, event_type, priority, payload):
 | 
			
		||||
    if priority not in log_levels:
 | 
			
		||||
        raise BadPriorityException(
 | 
			
		||||
                 _('%s not in valid priorities' % priority))
 | 
			
		||||
 | 
			
		||||
    # Ensure everything is JSON serializable.
 | 
			
		||||
    payload = utils.to_primitive(payload, convert_instances=True)
 | 
			
		||||
 | 
			
		||||
    driver = utils.import_object(FLAGS.notification_driver)
 | 
			
		||||
    msg = dict(message_id=str(uuid.uuid4()),
 | 
			
		||||
                   publisher_id=publisher_id,
 | 
			
		||||
 
 | 
			
		||||
@@ -496,8 +496,8 @@ class ComputeTestCase(test.TestCase):
 | 
			
		||||
        db.instance_update(self.context, instance_id,
 | 
			
		||||
                {'instance_type_id': inst_type['id']})
 | 
			
		||||
 | 
			
		||||
        self.assertRaises(exception.ApiError, self.compute_api.resize,
 | 
			
		||||
                context, instance_id, 1)
 | 
			
		||||
        self.assertRaises(exception.CannotResizeToSmallerSize,
 | 
			
		||||
                          self.compute_api.resize, context, instance_id, 1)
 | 
			
		||||
 | 
			
		||||
        self.compute.terminate_instance(context, instance_id)
 | 
			
		||||
 | 
			
		||||
@@ -508,8 +508,8 @@ class ComputeTestCase(test.TestCase):
 | 
			
		||||
 | 
			
		||||
        self.compute.run_instance(self.context, instance_id)
 | 
			
		||||
 | 
			
		||||
        self.assertRaises(exception.ApiError, self.compute_api.resize,
 | 
			
		||||
                context, instance_id, 1)
 | 
			
		||||
        self.assertRaises(exception.CannotResizeToSameSize,
 | 
			
		||||
                          self.compute_api.resize, context, instance_id, 1)
 | 
			
		||||
 | 
			
		||||
        self.compute.terminate_instance(context, instance_id)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +57,7 @@ class DbApiTestCase(test.TestCase):
 | 
			
		||||
    def test_instance_get_project_vpn(self):
 | 
			
		||||
        values = {'instance_type_id': FLAGS.default_instance_type,
 | 
			
		||||
                  'image_ref': FLAGS.vpn_image_id,
 | 
			
		||||
                  'project_id': self.project_id
 | 
			
		||||
                  'project_id': self.project_id,
 | 
			
		||||
                 }
 | 
			
		||||
        instance = db.instance_create(self.context, values)
 | 
			
		||||
        result = db.instance_get_project_vpn(self.context.elevated(),
 | 
			
		||||
@@ -67,7 +67,7 @@ class DbApiTestCase(test.TestCase):
 | 
			
		||||
    def test_instance_get_project_vpn_joins(self):
 | 
			
		||||
        values = {'instance_type_id': FLAGS.default_instance_type,
 | 
			
		||||
                  'image_ref': FLAGS.vpn_image_id,
 | 
			
		||||
                  'project_id': self.project_id
 | 
			
		||||
                  'project_id': self.project_id,
 | 
			
		||||
                 }
 | 
			
		||||
        instance = db.instance_create(self.context, values)
 | 
			
		||||
        _setup_networking(instance['id'])
 | 
			
		||||
 
 | 
			
		||||
@@ -346,7 +346,7 @@ class LibvirtConnTestCase(test.TestCase):
 | 
			
		||||
        self.mox.ReplayAll()
 | 
			
		||||
 | 
			
		||||
        conn = connection.LibvirtConnection(False)
 | 
			
		||||
        conn.snapshot(instance_ref, recv_meta['id'])
 | 
			
		||||
        conn.snapshot(self.context, instance_ref, recv_meta['id'])
 | 
			
		||||
 | 
			
		||||
        snapshot = image_service.show(context, recv_meta['id'])
 | 
			
		||||
        self.assertEquals(snapshot['properties']['image_state'], 'available')
 | 
			
		||||
@@ -386,7 +386,7 @@ class LibvirtConnTestCase(test.TestCase):
 | 
			
		||||
        self.mox.ReplayAll()
 | 
			
		||||
 | 
			
		||||
        conn = connection.LibvirtConnection(False)
 | 
			
		||||
        conn.snapshot(instance_ref, recv_meta['id'])
 | 
			
		||||
        conn.snapshot(self.context, instance_ref, recv_meta['id'])
 | 
			
		||||
 | 
			
		||||
        snapshot = image_service.show(context, recv_meta['id'])
 | 
			
		||||
        self.assertEquals(snapshot['properties']['image_state'], 'available')
 | 
			
		||||
@@ -736,7 +736,7 @@ class LibvirtConnTestCase(test.TestCase):
 | 
			
		||||
        network_info = _create_network_info()
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            conn.spawn(instance, network_info)
 | 
			
		||||
            conn.spawn(self.context, instance, network_info)
 | 
			
		||||
        except Exception, e:
 | 
			
		||||
            count = (0 <= str(e.message).find('Unexpected method call'))
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2010 United States Government as represented by the
 | 
			
		||||
# Administrator of the National Aeronautics and Space Administration.
 | 
			
		||||
# 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 StringIO
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
from nova import twistd
 | 
			
		||||
from nova import exception
 | 
			
		||||
from nova import flags
 | 
			
		||||
from nova import test
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FLAGS = flags.FLAGS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TwistdTestCase(test.TestCase):
 | 
			
		||||
    def setUp(self):
 | 
			
		||||
        super(TwistdTestCase, self).setUp()
 | 
			
		||||
        self.Options = twistd.WrapTwistedOptions(twistd.TwistdServerOptions)
 | 
			
		||||
        sys.stdout = StringIO.StringIO()
 | 
			
		||||
 | 
			
		||||
    def tearDown(self):
 | 
			
		||||
        super(TwistdTestCase, self).tearDown()
 | 
			
		||||
        sys.stdout = sys.__stdout__
 | 
			
		||||
 | 
			
		||||
    def test_basic(self):
 | 
			
		||||
        options = self.Options()
 | 
			
		||||
        argv = options.parseOptions()
 | 
			
		||||
 | 
			
		||||
    def test_logfile(self):
 | 
			
		||||
        options = self.Options()
 | 
			
		||||
        argv = options.parseOptions(['--logfile=foo'])
 | 
			
		||||
        self.assertEqual(FLAGS.logfile, 'foo')
 | 
			
		||||
 | 
			
		||||
    def test_help(self):
 | 
			
		||||
        options = self.Options()
 | 
			
		||||
        self.assertRaises(SystemExit, options.parseOptions, ['--help'])
 | 
			
		||||
        self.assert_('pidfile' in sys.stdout.getvalue())
 | 
			
		||||
@@ -40,6 +40,7 @@ class VMWareAPIVMTestCase(test.TestCase):
 | 
			
		||||
 | 
			
		||||
    def setUp(self):
 | 
			
		||||
        super(VMWareAPIVMTestCase, self).setUp()
 | 
			
		||||
        self.context = context.RequestContext('fake', 'fake', False)
 | 
			
		||||
        self.flags(vmwareapi_host_ip='test_url',
 | 
			
		||||
                   vmwareapi_host_username='test_username',
 | 
			
		||||
                   vmwareapi_host_password='test_pass')
 | 
			
		||||
@@ -94,7 +95,7 @@ class VMWareAPIVMTestCase(test.TestCase):
 | 
			
		||||
        """Create and spawn the VM."""
 | 
			
		||||
        self._create_instance_in_the_db()
 | 
			
		||||
        self.type_data = db.instance_type_get_by_name(None, 'm1.large')
 | 
			
		||||
        self.conn.spawn(self.instance, self.network_info)
 | 
			
		||||
        self.conn.spawn(self.context, self.instance, self.network_info)
 | 
			
		||||
        self._check_vm_record()
 | 
			
		||||
 | 
			
		||||
    def _check_vm_record(self):
 | 
			
		||||
@@ -156,14 +157,14 @@ class VMWareAPIVMTestCase(test.TestCase):
 | 
			
		||||
        self._create_vm()
 | 
			
		||||
        info = self.conn.get_info(1)
 | 
			
		||||
        self._check_vm_info(info, power_state.RUNNING)
 | 
			
		||||
        self.conn.snapshot(self.instance, "Test-Snapshot")
 | 
			
		||||
        self.conn.snapshot(self.context, self.instance, "Test-Snapshot")
 | 
			
		||||
        info = self.conn.get_info(1)
 | 
			
		||||
        self._check_vm_info(info, power_state.RUNNING)
 | 
			
		||||
 | 
			
		||||
    def test_snapshot_non_existent(self):
 | 
			
		||||
        self._create_instance_in_the_db()
 | 
			
		||||
        self.assertRaises(Exception, self.conn.snapshot, self.instance,
 | 
			
		||||
                          "Test-Snapshot")
 | 
			
		||||
        self.assertRaises(Exception, self.conn.snapshot, self.context,
 | 
			
		||||
                          self.instance, "Test-Snapshot")
 | 
			
		||||
 | 
			
		||||
    def test_reboot(self):
 | 
			
		||||
        self._create_vm()
 | 
			
		||||
 
 | 
			
		||||
@@ -226,7 +226,7 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
                               'mac': 'DE:AD:BE:EF:00:00',
 | 
			
		||||
                               'rxtx_cap': 3})]
 | 
			
		||||
            instance = db.instance_create(self.context, values)
 | 
			
		||||
            self.conn.spawn(instance, network_info)
 | 
			
		||||
            self.conn.spawn(self.context, instance, network_info)
 | 
			
		||||
 | 
			
		||||
        gt1 = eventlet.spawn(_do_build, 1, self.project_id, self.user_id)
 | 
			
		||||
        gt2 = eventlet.spawn(_do_build, 2, self.project_id, self.user_id)
 | 
			
		||||
@@ -256,14 +256,15 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
        instance = self._create_instance()
 | 
			
		||||
 | 
			
		||||
        name = "MySnapshot"
 | 
			
		||||
        self.assertRaises(exception.Error, self.conn.snapshot, instance, name)
 | 
			
		||||
        self.assertRaises(exception.Error, self.conn.snapshot,
 | 
			
		||||
                          self.context, instance, name)
 | 
			
		||||
 | 
			
		||||
    def test_instance_snapshot(self):
 | 
			
		||||
        stubs.stubout_instance_snapshot(self.stubs)
 | 
			
		||||
        instance = self._create_instance()
 | 
			
		||||
 | 
			
		||||
        name = "MySnapshot"
 | 
			
		||||
        template_vm_ref = self.conn.snapshot(instance, name)
 | 
			
		||||
        template_vm_ref = self.conn.snapshot(self.context, instance, name)
 | 
			
		||||
 | 
			
		||||
        def ensure_vm_was_torn_down():
 | 
			
		||||
            vm_labels = []
 | 
			
		||||
@@ -425,14 +426,13 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
                           'label': 'fake',
 | 
			
		||||
                           'mac': 'DE:AD:BE:EF:00:00',
 | 
			
		||||
                           'rxtx_cap': 3})]
 | 
			
		||||
        self.conn.spawn(instance, network_info)
 | 
			
		||||
        self.conn.spawn(self.context, instance, network_info)
 | 
			
		||||
        self.create_vm_record(self.conn, os_type, instance_id)
 | 
			
		||||
        self.check_vm_record(self.conn, check_injection)
 | 
			
		||||
        self.assertTrue(instance.os_type)
 | 
			
		||||
        self.assertTrue(instance.architecture)
 | 
			
		||||
 | 
			
		||||
    def test_spawn_not_enough_memory(self):
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self.assertRaises(Exception,
 | 
			
		||||
                          self._test_spawn,
 | 
			
		||||
                          1, 2, 3, "4")  # m1.xlarge
 | 
			
		||||
@@ -444,7 +444,6 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        vdi_recs_start = self._list_vdis()
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        stubs.stubout_fetch_image_glance_disk(self.stubs)
 | 
			
		||||
        self.assertRaises(xenapi_fake.Failure,
 | 
			
		||||
                          self._test_spawn, 1, 2, 3)
 | 
			
		||||
@@ -459,7 +458,6 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        vdi_recs_start = self._list_vdis()
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        stubs.stubout_create_vm(self.stubs)
 | 
			
		||||
        self.assertRaises(xenapi_fake.Failure,
 | 
			
		||||
                          self._test_spawn, 1, 2, 3)
 | 
			
		||||
@@ -467,40 +465,12 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
        vdi_recs_end = self._list_vdis()
 | 
			
		||||
        self._check_vdis(vdi_recs_start, vdi_recs_end)
 | 
			
		||||
 | 
			
		||||
    def test_spawn_raw_objectstore(self):
 | 
			
		||||
        # TODO(vish): deprecated
 | 
			
		||||
        from nova.auth import manager
 | 
			
		||||
        authman = manager.AuthManager()
 | 
			
		||||
        authman.create_user('fake', 'fake')
 | 
			
		||||
        authman.create_project('fake', 'fake')
 | 
			
		||||
        try:
 | 
			
		||||
            FLAGS.xenapi_image_service = 'objectstore'
 | 
			
		||||
            self._test_spawn(1, None, None)
 | 
			
		||||
        finally:
 | 
			
		||||
            authman.delete_project('fake')
 | 
			
		||||
            authman.delete_user('fake')
 | 
			
		||||
 | 
			
		||||
    def test_spawn_objectstore(self):
 | 
			
		||||
        # TODO(vish): deprecated
 | 
			
		||||
        from nova.auth import manager
 | 
			
		||||
        authman = manager.AuthManager()
 | 
			
		||||
        authman.create_user('fake', 'fake')
 | 
			
		||||
        authman.create_project('fake', 'fake')
 | 
			
		||||
        try:
 | 
			
		||||
            FLAGS.xenapi_image_service = 'objectstore'
 | 
			
		||||
            self._test_spawn(1, 2, 3)
 | 
			
		||||
        finally:
 | 
			
		||||
            authman.delete_project('fake')
 | 
			
		||||
            authman.delete_user('fake')
 | 
			
		||||
 | 
			
		||||
    @stub_vm_utils_with_vdi_attached_here
 | 
			
		||||
    def test_spawn_raw_glance(self):
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self._test_spawn(glance_stubs.FakeGlance.IMAGE_RAW, None, None)
 | 
			
		||||
        self.check_vm_params_for_linux()
 | 
			
		||||
 | 
			
		||||
    def test_spawn_vhd_glance_linux(self):
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self._test_spawn(glance_stubs.FakeGlance.IMAGE_VHD, None, None,
 | 
			
		||||
                         os_type="linux", architecture="x86-64")
 | 
			
		||||
        self.check_vm_params_for_linux()
 | 
			
		||||
@@ -529,20 +499,17 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
        self.assertEqual(len(self.vm['VBDs']), 1)
 | 
			
		||||
 | 
			
		||||
    def test_spawn_vhd_glance_windows(self):
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self._test_spawn(glance_stubs.FakeGlance.IMAGE_VHD, None, None,
 | 
			
		||||
                         os_type="windows", architecture="i386")
 | 
			
		||||
        self.check_vm_params_for_windows()
 | 
			
		||||
 | 
			
		||||
    def test_spawn_glance(self):
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self._test_spawn(glance_stubs.FakeGlance.IMAGE_MACHINE,
 | 
			
		||||
                         glance_stubs.FakeGlance.IMAGE_KERNEL,
 | 
			
		||||
                         glance_stubs.FakeGlance.IMAGE_RAMDISK)
 | 
			
		||||
        self.check_vm_params_for_linux_with_external_kernel()
 | 
			
		||||
 | 
			
		||||
    def test_spawn_netinject_file(self):
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        db_fakes.stub_out_db_instance_api(self.stubs, injected=True)
 | 
			
		||||
 | 
			
		||||
        self._tee_executed = False
 | 
			
		||||
@@ -568,7 +535,6 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
            # Capture the sudo tee .../etc/network/interfaces command
 | 
			
		||||
            (r'(sudo\s+)?tee.*interfaces', _tee_handler),
 | 
			
		||||
        ])
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self._test_spawn(glance_stubs.FakeGlance.IMAGE_MACHINE,
 | 
			
		||||
                         glance_stubs.FakeGlance.IMAGE_KERNEL,
 | 
			
		||||
                         glance_stubs.FakeGlance.IMAGE_RAMDISK,
 | 
			
		||||
@@ -576,7 +542,6 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
        self.assertTrue(self._tee_executed)
 | 
			
		||||
 | 
			
		||||
    def test_spawn_netinject_xenstore(self):
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        db_fakes.stub_out_db_instance_api(self.stubs, injected=True)
 | 
			
		||||
 | 
			
		||||
        self._tee_executed = False
 | 
			
		||||
@@ -621,7 +586,7 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
        self.assertFalse(self._tee_executed)
 | 
			
		||||
 | 
			
		||||
    def test_spawn_vlanmanager(self):
 | 
			
		||||
        self.flags(xenapi_image_service='glance',
 | 
			
		||||
        self.flags(image_service='nova.image.glance.GlanceImageService',
 | 
			
		||||
                   network_manager='nova.network.manager.VlanManager',
 | 
			
		||||
                   vlan_interface='fake0')
 | 
			
		||||
 | 
			
		||||
@@ -665,7 +630,7 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
        self.flags(flat_injected=False)
 | 
			
		||||
        instance = self._create_instance()
 | 
			
		||||
        conn = xenapi_conn.get_connection(False)
 | 
			
		||||
        conn.rescue(instance, None, [])
 | 
			
		||||
        conn.rescue(self.context, instance, None, [])
 | 
			
		||||
 | 
			
		||||
    def test_unrescue(self):
 | 
			
		||||
        instance = self._create_instance()
 | 
			
		||||
@@ -702,7 +667,7 @@ class XenAPIVMTestCase(test.TestCase):
 | 
			
		||||
                           'mac': 'DE:AD:BE:EF:00:00',
 | 
			
		||||
                           'rxtx_cap': 3})]
 | 
			
		||||
        if spawn:
 | 
			
		||||
            self.conn.spawn(instance, network_info)
 | 
			
		||||
            self.conn.spawn(self.context, instance, network_info)
 | 
			
		||||
        return instance
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -812,8 +777,9 @@ class XenAPIMigrateInstance(test.TestCase):
 | 
			
		||||
                           'label': 'fake',
 | 
			
		||||
                           'mac': 'DE:AD:BE:EF:00:00',
 | 
			
		||||
                           'rxtx_cap': 3})]
 | 
			
		||||
        conn.finish_migration(instance, dict(base_copy='hurr', cow='durr'),
 | 
			
		||||
                           network_info, resize_instance=True)
 | 
			
		||||
        conn.finish_migration(self.context, instance,
 | 
			
		||||
                              dict(base_copy='hurr', cow='durr'),
 | 
			
		||||
                              network_info, resize_instance=True)
 | 
			
		||||
        self.assertEqual(self.called, True)
 | 
			
		||||
 | 
			
		||||
    def test_finish_migrate_no_local_storage(self):
 | 
			
		||||
@@ -844,8 +810,9 @@ class XenAPIMigrateInstance(test.TestCase):
 | 
			
		||||
                           'label': 'fake',
 | 
			
		||||
                           'mac': 'DE:AD:BE:EF:00:00',
 | 
			
		||||
                           'rxtx_cap': 3})]
 | 
			
		||||
        conn.finish_migration(instance, dict(base_copy='hurr', cow='durr'),
 | 
			
		||||
                           network_info, resize_instance=True)
 | 
			
		||||
        conn.finish_migration(self.context, instance,
 | 
			
		||||
                              dict(base_copy='hurr', cow='durr'),
 | 
			
		||||
                              network_info, resize_instance=True)
 | 
			
		||||
 | 
			
		||||
    def test_finish_migrate_no_resize_vdi(self):
 | 
			
		||||
        instance = db.instance_create(self.context, self.values)
 | 
			
		||||
@@ -874,8 +841,9 @@ class XenAPIMigrateInstance(test.TestCase):
 | 
			
		||||
                           'rxtx_cap': 3})]
 | 
			
		||||
 | 
			
		||||
        # Resize instance would be determined by the compute call
 | 
			
		||||
        conn.finish_migration(instance, dict(base_copy='hurr', cow='durr'),
 | 
			
		||||
                           network_info, resize_instance=False)
 | 
			
		||||
        conn.finish_migration(self.context, instance,
 | 
			
		||||
                              dict(base_copy='hurr', cow='durr'),
 | 
			
		||||
                              network_info, resize_instance=False)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class XenAPIImageTypeTestCase(test.TestCase):
 | 
			
		||||
@@ -915,7 +883,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase):
 | 
			
		||||
 | 
			
		||||
    def test_instance_disk(self):
 | 
			
		||||
        """If a kernel is specified, the image type is DISK (aka machine)."""
 | 
			
		||||
        FLAGS.xenapi_image_service = 'objectstore'
 | 
			
		||||
        self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_MACHINE
 | 
			
		||||
        self.fake_instance.kernel_id = glance_stubs.FakeGlance.IMAGE_KERNEL
 | 
			
		||||
        self.assert_disk_type(vm_utils.ImageType.DISK)
 | 
			
		||||
@@ -925,7 +892,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase):
 | 
			
		||||
        If the kernel isn't specified, and we're not using Glance, then
 | 
			
		||||
        DISK_RAW is assumed.
 | 
			
		||||
        """
 | 
			
		||||
        FLAGS.xenapi_image_service = 'objectstore'
 | 
			
		||||
        self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_RAW
 | 
			
		||||
        self.fake_instance.kernel_id = None
 | 
			
		||||
        self.assert_disk_type(vm_utils.ImageType.DISK_RAW)
 | 
			
		||||
@@ -935,7 +901,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase):
 | 
			
		||||
        If we're using Glance, then defer to the image_type field, which in
 | 
			
		||||
        this case will be 'raw'.
 | 
			
		||||
        """
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_RAW
 | 
			
		||||
        self.fake_instance.kernel_id = None
 | 
			
		||||
        self.assert_disk_type(vm_utils.ImageType.DISK_RAW)
 | 
			
		||||
@@ -945,7 +910,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase):
 | 
			
		||||
        If we're using Glance, then defer to the image_type field, which in
 | 
			
		||||
        this case will be 'vhd'.
 | 
			
		||||
        """
 | 
			
		||||
        FLAGS.xenapi_image_service = 'glance'
 | 
			
		||||
        self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_VHD
 | 
			
		||||
        self.fake_instance.kernel_id = None
 | 
			
		||||
        self.assert_disk_type(vm_utils.ImageType.DISK_VHD)
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,8 @@ from nova import utils
 | 
			
		||||
 | 
			
		||||
def stubout_instance_snapshot(stubs):
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def fake_fetch_image(cls, session, instance_id, image, user, project,
 | 
			
		||||
                         type):
 | 
			
		||||
    def fake_fetch_image(cls, context, session, instance_id, image, user,
 | 
			
		||||
                         project, type):
 | 
			
		||||
        from nova.virt.xenapi.fake import create_vdi
 | 
			
		||||
        name_label = "instance-%s" % instance_id
 | 
			
		||||
        #TODO: create fake SR record
 | 
			
		||||
@@ -227,7 +227,7 @@ def stub_out_vm_methods(stubs):
 | 
			
		||||
    def fake_release_bootlock(self, vm):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    def fake_spawn_rescue(self, inst):
 | 
			
		||||
    def fake_spawn_rescue(self, context, inst, network_info):
 | 
			
		||||
        inst._rescue = False
 | 
			
		||||
 | 
			
		||||
    stubs.Set(vmops.VMOps, "_shutdown", fake_shutdown)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										267
									
								
								nova/twistd.py
									
									
									
									
									
								
							
							
						
						
									
										267
									
								
								nova/twistd.py
									
									
									
									
									
								
							@@ -1,267 +0,0 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2010 United States Government as represented by the
 | 
			
		||||
# Administrator of the National Aeronautics and Space Administration.
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
Twisted daemon helpers, specifically to parse out gFlags from twisted flags,
 | 
			
		||||
manage pid files and support syslogging.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import gflags
 | 
			
		||||
import os
 | 
			
		||||
import signal
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
from twisted.scripts import twistd
 | 
			
		||||
from twisted.python import log
 | 
			
		||||
from twisted.python import reflect
 | 
			
		||||
from twisted.python import runtime
 | 
			
		||||
from twisted.python import usage
 | 
			
		||||
 | 
			
		||||
from nova import flags
 | 
			
		||||
from nova import log as logging
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if runtime.platformType == "win32":
 | 
			
		||||
    from twisted.scripts._twistw import ServerOptions
 | 
			
		||||
else:
 | 
			
		||||
    from twisted.scripts._twistd_unix import ServerOptions
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FLAGS = flags.FLAGS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TwistdServerOptions(ServerOptions):
 | 
			
		||||
    def parseArgs(self, *args):
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class FlagParser(object):
 | 
			
		||||
    # this is a required attribute for gflags
 | 
			
		||||
    syntactic_help = ''
 | 
			
		||||
 | 
			
		||||
    def __init__(self, parser):
 | 
			
		||||
        self.parser = parser
 | 
			
		||||
 | 
			
		||||
    def Parse(self, s):
 | 
			
		||||
        return self.parser(s)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def WrapTwistedOptions(wrapped):
 | 
			
		||||
    class TwistedOptionsToFlags(wrapped):
 | 
			
		||||
        subCommands = None
 | 
			
		||||
 | 
			
		||||
        def __init__(self):
 | 
			
		||||
            # NOTE(termie): _data exists because Twisted stuff expects
 | 
			
		||||
            #               to be able to set arbitrary things that are
 | 
			
		||||
            #               not actual flags
 | 
			
		||||
            self._data = {}
 | 
			
		||||
            self._flagHandlers = {}
 | 
			
		||||
            self._paramHandlers = {}
 | 
			
		||||
 | 
			
		||||
            # Absorb the twistd flags into our FLAGS
 | 
			
		||||
            self._absorbFlags()
 | 
			
		||||
            self._absorbParameters()
 | 
			
		||||
            self._absorbHandlers()
 | 
			
		||||
 | 
			
		||||
            wrapped.__init__(self)
 | 
			
		||||
 | 
			
		||||
        def _absorbFlags(self):
 | 
			
		||||
            twistd_flags = []
 | 
			
		||||
            reflect.accumulateClassList(self.__class__, 'optFlags',
 | 
			
		||||
                                        twistd_flags)
 | 
			
		||||
            for flag in twistd_flags:
 | 
			
		||||
                key = flag[0].replace('-', '_')
 | 
			
		||||
                if hasattr(FLAGS, key):
 | 
			
		||||
                    continue
 | 
			
		||||
                flags.DEFINE_boolean(key, None, str(flag[-1]))
 | 
			
		||||
 | 
			
		||||
        def _absorbParameters(self):
 | 
			
		||||
            twistd_params = []
 | 
			
		||||
            reflect.accumulateClassList(self.__class__, 'optParameters',
 | 
			
		||||
                                        twistd_params)
 | 
			
		||||
            for param in twistd_params:
 | 
			
		||||
                key = param[0].replace('-', '_')
 | 
			
		||||
                if hasattr(FLAGS, key):
 | 
			
		||||
                    continue
 | 
			
		||||
                if len(param) > 4:
 | 
			
		||||
                    flags.DEFINE(FlagParser(param[4]),
 | 
			
		||||
                                 key, param[2], str(param[3]),
 | 
			
		||||
                                 serializer=gflags.ArgumentSerializer())
 | 
			
		||||
                else:
 | 
			
		||||
                    flags.DEFINE_string(key, param[2], str(param[3]))
 | 
			
		||||
 | 
			
		||||
        def _absorbHandlers(self):
 | 
			
		||||
            twistd_handlers = {}
 | 
			
		||||
            reflect.addMethodNamesToDict(self.__class__, twistd_handlers,
 | 
			
		||||
                                         "opt_")
 | 
			
		||||
 | 
			
		||||
            # NOTE(termie): Much of the following is derived/copied from
 | 
			
		||||
            #               twisted.python.usage with the express purpose of
 | 
			
		||||
            #               providing compatibility
 | 
			
		||||
            for name in twistd_handlers.keys():
 | 
			
		||||
                method = getattr(self, 'opt_' + name)
 | 
			
		||||
 | 
			
		||||
                takesArg = not usage.flagFunction(method, name)
 | 
			
		||||
                doc = getattr(method, '__doc__', None)
 | 
			
		||||
                if not doc:
 | 
			
		||||
                    doc = 'undocumented'
 | 
			
		||||
 | 
			
		||||
                if not takesArg:
 | 
			
		||||
                    if name not in FLAGS:
 | 
			
		||||
                        flags.DEFINE_boolean(name, None, doc)
 | 
			
		||||
                    self._flagHandlers[name] = method
 | 
			
		||||
                else:
 | 
			
		||||
                    if name not in FLAGS:
 | 
			
		||||
                        flags.DEFINE_string(name, None, doc)
 | 
			
		||||
                    self._paramHandlers[name] = method
 | 
			
		||||
 | 
			
		||||
        def _doHandlers(self):
 | 
			
		||||
            for flag, handler in self._flagHandlers.iteritems():
 | 
			
		||||
                if self[flag]:
 | 
			
		||||
                    handler()
 | 
			
		||||
            for param, handler in self._paramHandlers.iteritems():
 | 
			
		||||
                if self[param] is not None:
 | 
			
		||||
                    handler(self[param])
 | 
			
		||||
 | 
			
		||||
        def __str__(self):
 | 
			
		||||
            return str(FLAGS)
 | 
			
		||||
 | 
			
		||||
        def parseOptions(self, options=None):
 | 
			
		||||
            if options is None:
 | 
			
		||||
                options = sys.argv
 | 
			
		||||
            else:
 | 
			
		||||
                options.insert(0, '')
 | 
			
		||||
 | 
			
		||||
            args = FLAGS(options)
 | 
			
		||||
            logging.setup()
 | 
			
		||||
            argv = args[1:]
 | 
			
		||||
            # ignore subcommands
 | 
			
		||||
 | 
			
		||||
            try:
 | 
			
		||||
                self.parseArgs(*argv)
 | 
			
		||||
            except TypeError:
 | 
			
		||||
                raise usage.UsageError(_("Wrong number of arguments."))
 | 
			
		||||
 | 
			
		||||
            self.postOptions()
 | 
			
		||||
            return args
 | 
			
		||||
 | 
			
		||||
        def parseArgs(self, *args):
 | 
			
		||||
            # TODO(termie): figure out a decent way of dealing with args
 | 
			
		||||
            #return
 | 
			
		||||
            wrapped.parseArgs(self, *args)
 | 
			
		||||
 | 
			
		||||
        def postOptions(self):
 | 
			
		||||
            self._doHandlers()
 | 
			
		||||
 | 
			
		||||
            wrapped.postOptions(self)
 | 
			
		||||
 | 
			
		||||
        def __getitem__(self, key):
 | 
			
		||||
            key = key.replace('-', '_')
 | 
			
		||||
            try:
 | 
			
		||||
                return getattr(FLAGS, key)
 | 
			
		||||
            except (AttributeError, KeyError):
 | 
			
		||||
                return self._data[key]
 | 
			
		||||
 | 
			
		||||
        def __setitem__(self, key, value):
 | 
			
		||||
            key = key.replace('-', '_')
 | 
			
		||||
            try:
 | 
			
		||||
                return setattr(FLAGS, key, value)
 | 
			
		||||
            except (AttributeError, KeyError):
 | 
			
		||||
                self._data[key] = value
 | 
			
		||||
 | 
			
		||||
        def get(self, key, default):
 | 
			
		||||
            key = key.replace('-', '_')
 | 
			
		||||
            try:
 | 
			
		||||
                return getattr(FLAGS, key)
 | 
			
		||||
            except (AttributeError, KeyError):
 | 
			
		||||
                self._data.get(key, default)
 | 
			
		||||
 | 
			
		||||
    return TwistedOptionsToFlags
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def stop(pidfile):
 | 
			
		||||
    """
 | 
			
		||||
    Stop the daemon
 | 
			
		||||
    """
 | 
			
		||||
    # Get the pid from the pidfile
 | 
			
		||||
    try:
 | 
			
		||||
        pf = file(pidfile, 'r')
 | 
			
		||||
        pid = int(pf.read().strip())
 | 
			
		||||
        pf.close()
 | 
			
		||||
    except IOError:
 | 
			
		||||
        pid = None
 | 
			
		||||
 | 
			
		||||
    if not pid:
 | 
			
		||||
        message = _("pidfile %s does not exist. Daemon not running?\n")
 | 
			
		||||
        sys.stderr.write(message % pidfile)
 | 
			
		||||
        # Not an error in a restart
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    # Try killing the daemon process
 | 
			
		||||
    try:
 | 
			
		||||
        while 1:
 | 
			
		||||
            os.kill(pid, signal.SIGKILL)
 | 
			
		||||
            time.sleep(0.1)
 | 
			
		||||
    except OSError, err:
 | 
			
		||||
        err = str(err)
 | 
			
		||||
        if err.find(_("No such process")) > 0:
 | 
			
		||||
            if os.path.exists(pidfile):
 | 
			
		||||
                os.remove(pidfile)
 | 
			
		||||
        else:
 | 
			
		||||
            print str(err)
 | 
			
		||||
            sys.exit(1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def serve(filename):
 | 
			
		||||
    logging.debug(_("Serving %s") % filename)
 | 
			
		||||
    name = os.path.basename(filename)
 | 
			
		||||
    OptionsClass = WrapTwistedOptions(TwistdServerOptions)
 | 
			
		||||
    options = OptionsClass()
 | 
			
		||||
    argv = options.parseOptions()
 | 
			
		||||
    FLAGS.python = filename
 | 
			
		||||
    FLAGS.no_save = True
 | 
			
		||||
    if not FLAGS.pidfile:
 | 
			
		||||
        FLAGS.pidfile = '%s.pid' % name
 | 
			
		||||
    elif FLAGS.pidfile.endswith('twistd.pid'):
 | 
			
		||||
        FLAGS.pidfile = FLAGS.pidfile.replace('twistd.pid', '%s.pid' % name)
 | 
			
		||||
    if not FLAGS.prefix:
 | 
			
		||||
        FLAGS.prefix = name
 | 
			
		||||
    elif FLAGS.prefix.endswith('twisted'):
 | 
			
		||||
        FLAGS.prefix = FLAGS.prefix.replace('twisted', name)
 | 
			
		||||
 | 
			
		||||
    action = 'start'
 | 
			
		||||
    if len(argv) > 1:
 | 
			
		||||
        action = argv.pop()
 | 
			
		||||
 | 
			
		||||
    if action == 'stop':
 | 
			
		||||
        stop(FLAGS.pidfile)
 | 
			
		||||
        sys.exit()
 | 
			
		||||
    elif action == 'restart':
 | 
			
		||||
        stop(FLAGS.pidfile)
 | 
			
		||||
    elif action == 'start':
 | 
			
		||||
        pass
 | 
			
		||||
    else:
 | 
			
		||||
        print 'usage: %s [options] [start|stop|restart]' % argv[0]
 | 
			
		||||
        sys.exit(1)
 | 
			
		||||
 | 
			
		||||
    logging.debug(_("Full set of FLAGS:"))
 | 
			
		||||
    for flag in FLAGS:
 | 
			
		||||
        logging.debug("%s : %s" % (flag, FLAGS.get(flag, None)))
 | 
			
		||||
 | 
			
		||||
    logging.audit(_("Starting %s"), name)
 | 
			
		||||
    twistd.runApp(options)
 | 
			
		||||
							
								
								
									
										59
									
								
								po/ast.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/ast.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2263,10 +2208,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/cs.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/cs.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2265,10 +2210,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/da.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/da.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2263,10 +2208,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/de.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/de.po
									
									
									
									
									
								
							@@ -131,33 +131,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr "PID-Datei %s existiert nicht. Läuft der Daemon nicht?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "Kein passender Prozess gefunden"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "Bedient %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "Alle vorhandenen FLAGS:"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "%s wird gestartet"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1785,34 +1758,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2270,10 +2215,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/en_AU.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/en_AU.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2263,10 +2208,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/en_GB.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/en_GB.po
									
									
									
									
									
								
							@@ -130,33 +130,6 @@ msgstr "compute.api::suspend %s"
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr "compute.api::resume %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "Wrong number of arguments."
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "No such process"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "Serving %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "Full set of FLAGS:"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "Starting %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1803,34 +1776,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2288,10 +2233,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/es.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/es.po
									
									
									
									
									
								
							@@ -130,33 +130,6 @@ msgstr "compute.api::suspend %s"
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr "compute.api::resume %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "Cantidad de argumentos incorrecta"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr "El \"pidfile\" %s no existe. Quizás el servicio no este corriendo.\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "No existe el proceso"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "Sirviendo %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "Conjunto completo de opciones (FLAGS):"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "Iniciando %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1819,34 +1792,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr "Obtenida excepción %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr "actualizando %s..."
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr "error inesperado durante la actualización"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr "excepción inexperada al obtener la conexión"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr "Encontrada interfaz: %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2309,10 +2254,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								po/fr.po
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								po/fr.po
									
									
									
									
									
								
							@@ -133,35 +133,6 @@ msgstr "compute.api::suspend %s"
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr "compute.api::resume %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "Nombre d'arguments incorrect."
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Le fichier pid %s n'existe pas. Est-ce que le processus est en cours "
 | 
			
		||||
"d'exécution ?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "Aucun processus de ce type"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "En train de servir %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "Ensemble de propriétés complet :"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "Démarrage de %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1865,34 +1836,6 @@ msgstr "Tâche [%(name)s] %(task)s état : %(status)s    %(error_info)s"
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr "Reçu exception : %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr "mise à jour %s..."
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr "erreur inopinée pendant la ise à jour"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr "Ne peut pas récupérer blockstats pour \"%(disk)s\" sur \"%(iid)s\""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr "Ne peut pas récupérer ifstats pour \"%(interface)s\" sur \"%(iid)s\""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr "erreur inopinée pendant la connexion"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr "Instance trouvée : %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2373,10 +2316,6 @@ msgstr "Démarrage %(arg0)s sur %(host)s:%(port)s"
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr "Vous devez implémenter __call__"
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr "Démarrage du superviseur d'instance"
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr "Allocation IP"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										60
									
								
								po/it.po
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								po/it.po
									
									
									
									
									
								
							@@ -134,34 +134,6 @@ msgstr "compute.api::suspend %s"
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr "compute.api::resume %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "Numero errato di argomenti"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Il pidfile %s non esiste. Assicurarsi che il demone é in esecuzione.\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "Nessun processo trovato"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "Servire %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "Insieme di FLAGS:"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "Avvio di %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1791,34 +1763,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2278,10 +2222,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/ja.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/ja.po
									
									
									
									
									
								
							@@ -130,33 +130,6 @@ msgstr "例外: compute.api::suspend %s"
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr "例外: compute.api::resume %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "引数の数が異なります。"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr "pidfile %s が存在しません。デーモンは実行中ですか?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "そのようなプロセスはありません"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "%s サービスの開始"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "FLAGSの一覧:"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "%s を起動中"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1808,34 +1781,6 @@ msgstr "タスク [%(name)s] %(task)s 状態: %(status)s    %(error_info)s"
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr "例外 %s が発生しました。"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr "%s の情報の更新…"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr "更新の最中に予期しないエラーが発生しました。"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr "\"%(iid)s\" 上の \"%(disk)s\" 用のブロック統計(blockstats)が取得できません"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr "\"%(iid)s\" 上の %(interface)s\" 用インターフェース統計(ifstats)が取得できません"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr "接続に際し予期しないエラーが発生しました。"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr "インスタンス %s が見つかりました。"
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2311,10 +2256,6 @@ msgstr "%(host)s:%(port)s 上で %(arg0)s を開始しています"
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr "__call__ を実装しなければなりません"
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr "インスタンスモニタを開始しています"
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr "IP アドレスをリースしました"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/nova.pot
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/nova.pot
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2263,10 +2208,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										60
									
								
								po/pt_BR.po
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								po/pt_BR.po
									
									
									
									
									
								
							@@ -126,34 +126,6 @@ msgstr "compute.api::suspend %s"
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr "compute.api::resume %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "Número errado de argumentos."
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Arquivo do id do processo (pidfile) %s não existe. O Daemon está parado?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "Processo inexistente"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "Servindo %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "Conjunto completo de FLAGS:"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "Iniciando %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1804,34 +1776,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2290,10 +2234,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/ru.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/ru.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "Неверное число аргументов."
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr "pidfile %s не обнаружен. Демон не запущен?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "Запускается %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1779,34 +1752,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr "обновление %s..."
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr "неожиданная ошибка во время обновления"
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2264,10 +2209,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/tl.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/tl.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2265,10 +2210,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/uk.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/uk.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "Обслуговування %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "Запускається %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2263,10 +2208,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/zh_CN.po
									
									
									
									
									
								
							@@ -17,11 +17,6 @@ msgstr ""
 | 
			
		||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
 | 
			
		||||
"X-Generator: Launchpad (build 13405)\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "启动 %s 中"
 | 
			
		||||
 | 
			
		||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
 | 
			
		||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
 | 
			
		||||
#: ../nova/scheduler/simple.py:122
 | 
			
		||||
@@ -135,28 +130,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr "错误参数个数。"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr "pidfile %s 不存在,守护进程是否运行?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "没有该进程"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr "正在为 %s 服务"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr "FLAGS全集:"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1785,34 +1758,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2270,10 +2215,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/zh_TW.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/zh_TW.po
									
									
									
									
									
								
							@@ -125,33 +125,6 @@ msgstr ""
 | 
			
		||||
msgid "compute.api::resume %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:157
 | 
			
		||||
msgid "Wrong number of arguments."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:209
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "pidfile %s does not exist. Daemon not running?\n"
 | 
			
		||||
msgstr "pidfile %s 不存在. Daemon未啟動?\n"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:221
 | 
			
		||||
msgid "No such process"
 | 
			
		||||
msgstr "沒有此一程序"
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:230 ../nova/service.py:224
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Serving %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:262 ../nova/service.py:225
 | 
			
		||||
msgid "Full set of FLAGS:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/twistd.py:266
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Starting %s"
 | 
			
		||||
msgstr "正在啟動 %s"
 | 
			
		||||
 | 
			
		||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
 | 
			
		||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
 | 
			
		||||
#: ../nova/api/ec2/__init__.py:317
 | 
			
		||||
@@ -1778,34 +1751,6 @@ msgstr ""
 | 
			
		||||
msgid "Got exception: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:259
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "updating %s..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:289
 | 
			
		||||
msgid "unexpected error during update"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:356
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:379
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:414
 | 
			
		||||
msgid "unexpected exception getting connection"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/compute/monitor.py:429
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Found instance: %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../nova/volume/san.py:67
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "Could not find iSCSI export  for volume %s"
 | 
			
		||||
@@ -2263,10 +2208,6 @@ msgstr ""
 | 
			
		||||
msgid "You must implement __call__"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-instancemonitor.py:55
 | 
			
		||||
msgid "Starting instance monitor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../bin/nova-dhcpbridge.py:58
 | 
			
		||||
msgid "leasing ip"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user