summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEldar Nugaev <enugaev@griddynamics.com>2011-01-12 01:27:36 +0300
committerEldar Nugaev <enugaev@griddynamics.com>2011-01-12 01:27:36 +0300
commitd01b546ae574f74b9c4c07a039c2c52cf0ed3bfb (patch)
tree61638f2d4317000cc56239821b4e9857caa6b0cc
parentaf759efab2f3de57a03a54b9c10c9d606dd1b668 (diff)
resolve pylint warnings
-rw-r--r--nova/api/ec2/cloud.py14
-rw-r--r--nova/db/api.py1
-rw-r--r--nova/db/sqlalchemy/models.py1
-rw-r--r--nova/scheduler/zone.py8
-rw-r--r--nova/service.py3
-rw-r--r--nova/tests/test_cloud.py45
-rw-r--r--nova/tests/test_scheduler.py78
7 files changed, 59 insertions, 91 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index b6748e608..42245fa54 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -159,8 +159,8 @@ class CloudController(object):
else:
keys = ''
hostname = instance_ref['hostname']
- availability_zone = self._get_availability_zone_by_host(ctxt,
- instance_ref['host'])
+ host = instance_ref['host']
+ availability_zone = self._get_availability_zone_by_host(ctxt, host)
floating_ip = db.instance_get_floating_address(ctxt,
instance_ref['id'])
ec2_id = id_to_ec2_id(instance_ref['id'])
@@ -210,12 +210,13 @@ class CloudController(object):
enabled_services = db.service_get_all(context)
disabled_services = db.service_get_all(context, True)
available_zones = []
- for zone in [service.availability_zone for service in enabled_services]:
+ for zone in [service.availability_zone for service
+ in enabled_services]:
if not zone in available_zones:
available_zones.append(zone)
not_available_zones = []
for zone in [service.availability_zone for service in disabled_services
- and not service['availability_zone'] in available_zones]:
+ if not service['availability_zone'] in available_zones]:
if not zone in not_available_zones:
not_available_zones.append(zone)
result = []
@@ -679,8 +680,9 @@ class CloudController(object):
i['amiLaunchIndex'] = instance['launch_index']
i['displayName'] = instance['display_name']
i['displayDescription'] = instance['display_description']
- availability_zone = self._get_availability_zone_by_host(context, instance['host'])
- i['placement'] = {'availabilityZone': availability_zone}
+ host = instance['host']
+ zone = self._get_availability_zone_by_host(context, host)
+ i['placement'] = {'availabilityZone': zone}
if instance['reservation_id'] not in reservations:
r = {}
r['reservationId'] = instance['reservation_id']
diff --git a/nova/db/api.py b/nova/db/api.py
index 64fee590b..4577d97d2 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -96,7 +96,6 @@ def service_get_all_by_host(context, host):
return IMPL.service_get_all_by_host(context, host)
-
def service_get_all_compute_sorted(context):
"""Get all compute services sorted by instance count.
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index 05ddbeb72..8e5b6b3ac 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -151,6 +151,7 @@ class Service(BASE, NovaBase):
disabled = Column(Boolean, default=False)
availability_zone = Column(String(255), default='nova')
+
class Certificate(BASE, NovaBase):
"""Represents a an x509 certificate"""
__tablename__ = 'certificates'
diff --git a/nova/scheduler/zone.py b/nova/scheduler/zone.py
index ec2166adf..49786cd32 100644
--- a/nova/scheduler/zone.py
+++ b/nova/scheduler/zone.py
@@ -31,8 +31,8 @@ class ZoneScheduler(driver.Scheduler):
"""Implements Scheduler as a random node selector."""
def hosts_up_with_zone(self, context, topic, zone):
- """Return the list of hosts that have a running service
- for topic and availability zone (if defined).
+ """Return the list of hosts that have a running service
+ for topic and availability zone (if defined).
"""
if zone is None:
@@ -44,9 +44,8 @@ class ZoneScheduler(driver.Scheduler):
if self.service_is_up(service)
and service.availability_zone == zone]
-
def schedule(self, context, topic, *_args, **_kwargs):
- """Picks a host that is up at random in selected
+ """Picks a host that is up at random in selected
availability zone (if defined).
"""
@@ -55,4 +54,3 @@ class ZoneScheduler(driver.Scheduler):
if not hosts:
raise driver.NoValidHost(_("No hosts found"))
return hosts[int(random.random() * len(hosts))]
-
diff --git a/nova/service.py b/nova/service.py
index 2998ed3e5..8b2a22ce0 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -113,12 +113,13 @@ class Service(object):
self.timers.append(periodic)
def _create_service_ref(self, context):
+ zone = FLAGS.node_availability_zone
service_ref = db.service_create(context,
{'host': self.host,
'binary': self.binary,
'topic': self.topic,
'report_count': 0,
- 'availability_zone': FLAGS.node_availability_zone})
+ 'availability_zone': zone})
self.service_id = service_ref['id']
def __getattr__(self, key):
diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py
index afb6a8f1b..afa6e9140 100644
--- a/nova/tests/test_cloud.py
+++ b/nova/tests/test_cloud.py
@@ -135,12 +135,12 @@ class CloudTestCase(test.TestCase):
def test_describe_availability_zones(self):
"""Makes sure describe_availability_zones works and filters results."""
- service1 = db.service_create(self.context, {'host': 'host1_describe_zones',
+ service1 = db.service_create(self.context, {'host': 'host1_zones',
'binary': "nova-compute",
'topic': 'compute',
'report_count': 0,
'availability_zone': "zone1"})
- service2 = db.service_create(self.context, {'host': 'host2_describe_zones',
+ service2 = db.service_create(self.context, {'host': 'host2_zones',
'binary': "nova-compute",
'topic': 'compute',
'report_count': 0,
@@ -150,17 +150,18 @@ class CloudTestCase(test.TestCase):
db.service_destroy(self.context, service1['id'])
db.service_destroy(self.context, service2['id'])
-
def test_describe_instances(self):
"""Makes sure describe_instances works and filters results."""
- inst1 = db.instance_create(self.context, {'reservation_id': 'a', 'host': 'host1'})
- inst2 = db.instance_create(self.context, {'reservation_id': 'a', 'host': 'host2'})
- compute1 = db.service_create(self.context, {'host': 'host1',
- 'availability_zone': 'zone1',
- 'topic': "compute"})
- compute2 = db.service_create(self.context, {'host': 'host2',
- 'availability_zone': 'zone2',
- 'topic': "compute"})
+ inst1 = db.instance_create(self.context, {'reservation_id': 'a',
+ 'host': 'host1'})
+ inst2 = db.instance_create(self.context, {'reservation_id': 'a',
+ 'host': 'host2'})
+ comp1 = db.service_create(self.context, {'host': 'host1',
+ 'availability_zone': 'zone1',
+ 'topic': "compute"})
+ comp2 = db.service_create(self.context, {'host': 'host2',
+ 'availability_zone': 'zone2',
+ 'topic': "compute"})
result = self.cloud.describe_instances(self.context)
result = result['reservationSet'][0]
self.assertEqual(len(result['instancesSet']), 2)
@@ -171,13 +172,12 @@ class CloudTestCase(test.TestCase):
self.assertEqual(len(result['instancesSet']), 1)
self.assertEqual(result['instancesSet'][0]['instanceId'],
instance_id)
- self.assertEqual(result['instancesSet'][0]\
+ self.assertEqual(result['instancesSet'][0]
['placement']['availabilityZone'], 'zone2')
db.instance_destroy(self.context, inst1['id'])
db.instance_destroy(self.context, inst2['id'])
- db.service_destroy(self.context, compute1['id'])
- db.service_destroy(self.context, compute2['id'])
-
+ db.service_destroy(self.context, comp1['id'])
+ db.service_destroy(self.context, comp2['id'])
def test_console_output(self):
image_id = FLAGS.default_image
@@ -257,21 +257,19 @@ class CloudTestCase(test.TestCase):
LOG.debug(_("Terminating instance %s"), instance_id)
rv = self.compute.terminate_instance(instance_id)
-
def test_describe_instances(self):
"""Makes sure describe_instances works."""
instance1 = db.instance_create(self.context, {'host': 'host2'})
- service1 = db.service_create(self.context, {'host': 'host2',
- 'availability_zone': 'zone1',
- 'topic': "compute"})
+ comp1 = db.service_create(self.context, {'host': 'host2',
+ 'availability_zone': 'zone1',
+ 'topic': "compute"})
result = self.cloud.describe_instances(self.context)
- self.assertEqual(result['reservationSet'][0]\
- ['instancesSet'][0]\
+ self.assertEqual(result['reservationSet'][0]
+ ['instancesSet'][0]
['placement']['availabilityZone'], 'zone1')
db.instance_destroy(self.context, instance1['id'])
- db.service_destroy(self.context, service1['id'])
+ db.service_destroy(self.context, comp1['id'])
-
def test_instance_update_state(self):
def instance(num):
return {
@@ -321,7 +319,6 @@ class CloudTestCase(test.TestCase):
# data = self.cloud.get_metadata(instance(i)['private_dns_name'])
# self.assert_(data['meta-data']['ami-id'] == 'ami-%s' % i)
-
@staticmethod
def _fake_set_image_description(ctxt, image_id, description):
from nova.objectstore import handler
diff --git a/nova/tests/test_scheduler.py b/nova/tests/test_scheduler.py
index 127d666e4..ce4262ccf 100644
--- a/nova/tests/test_scheduler.py
+++ b/nova/tests/test_scheduler.py
@@ -76,6 +76,7 @@ class SchedulerTestCase(test.TestCase):
self.mox.ReplayAll()
scheduler.named_method(ctxt, 'topic', num=7)
+
class ZoneSchedulerTestCase(test.TestCase):
"""Test case for zone scheduler"""
def setUp(self):
@@ -95,70 +96,39 @@ class ZoneSchedulerTestCase(test.TestCase):
service.created_at = datetime.datetime.utcnow()
return service
-
def test_with_two_zones(self):
scheduler = manager.SchedulerManager()
ctxt = context.get_admin_context()
- service_list = [
- self._create_service_model(id=1, host='host1', zone='zone1'),
- self._create_service_model(id=2, host='host2', zone='zone2'),
- self._create_service_model(id=3, host='host3', zone='zone2'),
- self._create_service_model(id=4, host='host4', zone='zone2'),
- self._create_service_model(id=5, host='host5', zone='zone2')
- ]
+ service_list = [self._create_service_model(id=1,
+ host='host1',
+ zone='zone1'),
+ self._create_service_model(id=2,
+ host='host2',
+ zone='zone2'),
+ self._create_service_model(id=3,
+ host='host3',
+ zone='zone2'),
+ self._create_service_model(id=4,
+ host='host4',
+ zone='zone2'),
+ self._create_service_model(id=5,
+ host='host5',
+ zone='zone2')]
self.mox.StubOutWithMock(db, 'service_get_all_by_topic')
- db.service_get_all_by_topic(IgnoreArg(), IgnoreArg()).AndReturn(service_list)
+ arg = IgnoreArg()
+ db.service_get_all_by_topic(arg, arg).AndReturn(service_list)
self.mox.StubOutWithMock(rpc, 'cast', use_mock_anything=True)
rpc.cast(ctxt,
'compute.host1',
{'method': 'run_instance',
- 'args':{'instance_id': 'i-ffffffff',
- 'availability_zone': 'zone1'}})
+ 'args': {'instance_id': 'i-ffffffff',
+ 'availability_zone': 'zone1'}})
self.mox.ReplayAll()
- scheduler.run_instance(ctxt, 'compute', instance_id='i-ffffffff', availability_zone='zone1')
-
-
-class ZoneSchedulerTestCase(test.TestCase):
- """Test case for zone scheduler"""
- def setUp(self):
- super(ZoneSchedulerTestCase, self).setUp()
- self.flags(scheduler_driver='nova.scheduler.zone.ZoneScheduler')
+ scheduler.run_instance(ctxt,
+ 'compute',
+ instance_id='i-ffffffff',
+ availability_zone='zone1')
- def _create_service_model(self, **kwargs):
- service = db.sqlalchemy.models.Service()
- service.host = kwargs['host']
- service.disabled = False
- service.deleted = False
- service.report_count = 0
- service.binary = 'nova-compute'
- service.topic = 'compute'
- service.id = kwargs['id']
- service.availability_zone = kwargs['zone']
- service.created_at = datetime.datetime.utcnow()
- return service
-
-
- def test_with_two_zones(self):
- scheduler = manager.SchedulerManager()
- ctxt = context.get_admin_context()
- service_list = [
- self._create_service_model(id=1, host='host1', zone='zone1'),
- self._create_service_model(id=2, host='host2', zone='zone2'),
- self._create_service_model(id=3, host='host3', zone='zone2'),
- self._create_service_model(id=4, host='host4', zone='zone2'),
- self._create_service_model(id=5, host='host5', zone='zone2')
- ]
- self.mox.StubOutWithMock(db, 'service_get_all_by_topic')
- db.service_get_all_by_topic(IgnoreArg(), IgnoreArg()).AndReturn(service_list)
- self.mox.StubOutWithMock(rpc, 'cast', use_mock_anything=True)
- rpc.cast(ctxt,
- 'compute.host1',
- {'method': 'run_instance',
- 'args':{'instance_id': 'i-ffffffff',
- 'availability_zone': 'zone1'}})
- self.mox.ReplayAll()
- scheduler.run_instance(ctxt, 'compute', instance_id='i-ffffffff', availability_zone='zone1')
-
class SimpleDriverTestCase(test.TestCase):
"""Test case for simple driver"""