Skip to content

Commit 96fecae

Browse files
committed
Continued PEP8 code cleanup.
1 parent 1536176 commit 96fecae

18 files changed

Lines changed: 132 additions & 112 deletions

api/models.py

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import importlib
1111
import json
1212

13+
from celery.canvas import group
1314
from django.conf import settings
1415
from django.db import models
1516
from django.db.models.signals import post_save
@@ -20,15 +21,15 @@
2021

2122
from api import fields
2223
from celerytasks import controller
23-
from celery.canvas import group
2424

2525

2626
# define custom signals
2727
scale_signal = Signal(providing_args=['formation', 'user'])
2828
release_signal = Signal(providing_args=['formation', 'user'])
2929

30+
3031
def import_tasks(provider_type):
31-
"Return Celery tasks for a given provider type"
32+
"""Return Celery tasks for a given provider type"""
3233
try:
3334
tasks = importlib.import_module('celerytasks.'+provider_type)
3435
except ImportError as e:
@@ -195,17 +196,19 @@ def publish(self, **kwargs):
195196
# TODO: add sharing-based key lookup, for now just owner's keys
196197
for formation in formations:
197198
keys = databag['formations'][formation.id] = []
198-
owner_keys = [ '{0}_{1}'.format(k.owner.username, k.id) for k in formation.owner.key_set.all() ]
199+
owner_keys = ['{0}_{1}'.format(k.owner.username, k.id) for k in formation.owner.key_set.all()]
199200
keys.extend(owner_keys)
200201
# call a celery task to update gitosis
201202
if settings.CHEF_ENABLED:
202203
controller.update_gitosis.delay(databag).wait() # @UndefinedVariable
203204

204205
def next_container_node(self, formation, container_type='web'):
205206
count = []
206-
backend_nodes = list(Node.objects.filter(formation=formation, type='backend').order_by('created'))
207-
container_map = { n: [] for n in backend_nodes }
208-
containers = list(Container.objects.filter(formation=formation, type=container_type).order_by('created'))
207+
backend_nodes = list(Node.objects.filter(
208+
formation=formation, type='backend').order_by('created'))
209+
container_map = {n: [] for n in backend_nodes}
210+
containers = list(Container.objects.filter(
211+
formation=formation, type=container_type).order_by('created'))
209212
for c in containers:
210213
container_map[c.node].append(c)
211214
for n in container_map.keys():
@@ -287,7 +290,7 @@ def _scale_backends(self, requested, **kwargs):
287290
funcs.append(b.node.launch)
288291
diff = requested - len(backends)
289292
# http://docs.celeryproject.org/en/latest/userguide/canvas.html#groups
290-
job = [func() for func in funcs ]
293+
job = [func() for func in funcs]
291294
return job
292295

293296
def _scale_proxies(self, requested, **kwargs):
@@ -307,7 +310,7 @@ def _scale_proxies(self, requested, **kwargs):
307310
funcs.append(p.node.launch)
308311
diff = requested - len(proxies)
309312
# http://docs.celeryproject.org/en/latest/userguide/canvas.html#groups
310-
job = [ func() for func in funcs ]
313+
job = [func() for func in funcs]
311314
return job
312315

313316
def _scale_containers(self, requested_counts, **kwargs):
@@ -341,7 +344,7 @@ def _scale_containers(self, requested_counts, **kwargs):
341344
containers.append(c)
342345
container_num += 1
343346
diff = requested - len(containers)
344-
change +=1
347+
change += 1
345348
return change
346349

347350
def balance(self, **kwargs):
@@ -354,8 +357,9 @@ def balance(self, **kwargs):
354357
def _balance_containers(self, **kwargs):
355358
backends = self.backend_set.all().order_by('created')
356359
if len(backends) < 2:
357-
return # there's nothing to balance with 1 backend
358-
all_containers = Container.objects.filter(formation=self).order_by('-created')
360+
return # there's nothing to balance with 1 backend
361+
all_containers = Container.objects.filter(
362+
formation=self).order_by('-created')
359363
# get the next container number (e.g. web.19)
360364
container_num = 1 if not all_containers else all_containers[0].num + 1
361365
changed = False
@@ -384,7 +388,7 @@ def _balance_containers(self, **kwargs):
384388
type=container_type,
385389
num=container_num,
386390
node=b_under.node)
387-
container_num +=1
391+
container_num += 1
388392
# delete the oldest container from the most over-utilized node
389393
c = b_over.node.container_set.filter(type=container_type).order_by('created')[0]
390394
c.delete()
@@ -419,7 +423,7 @@ def calculate(self):
419423
d['release']['build']['procfile'] = release.build.procfile
420424
# calculate proxy
421425
d['proxy'] = {}
422-
d['proxy']['algorithm'] = 'round_robin'
426+
d['proxy']['algorithm'] = 'round_robin'
423427
d['proxy']['port'] = 80
424428
d['proxy']['backends'] = []
425429
# calculate container formation
@@ -428,7 +432,8 @@ def calculate(self):
428432
# all container types get an exposed port starting at 5001
429433
port = 5000 + c.num
430434
d['containers'].setdefault(c.type, {})
431-
d['containers'][c.type].update({ c.num: "{0}:{1}".format(c.node.id, port) })
435+
d['containers'][c.type].update(
436+
{c.num: "{0}:{1}".format(c.node.id, port)})
432437
# only proxy to 'web' containers
433438
if c.type == 'web':
434439
d['proxy']['backends'].append("{0}:{1}".format(c.node.fqdn, port))
@@ -467,9 +472,10 @@ def destroy(self):
467472
subtasks.extend([b.node.terminate() for b in self.backend_set.all()])
468473
subtasks.extend([p.node.terminate() for p in self.proxy_set.all()])
469474
job = group(*subtasks)
470-
job.apply_async().join() # block for termination
475+
job.apply_async().join() # block for termination
471476
# purge other hosting provider infrastructure
472-
tasks.cleanup_formation.delay(self.id,
477+
tasks.cleanup_formation.delay(
478+
self.id,
473479
self.flavor.provider.creds.copy(),
474480
self.flavor.params.copy()).wait()
475481

@@ -545,19 +551,21 @@ def _prepare_launch_args(self):
545551
# append to the default run_list
546552
run_list = chef.setdefault('run_list', [])
547553
attrs = chef['initial_attributes'] = {}
554+
formation_id = self.formation.id
548555
if self.type == 'backend':
549556
run_list.append('role[deis-backend]')
550557
attrs.setdefault('deis', {}).setdefault(
551-
'runtime', {}).setdefault('formations', [ self.formation.id ])
558+
'runtime', {}).setdefault('formations', [formation_id])
552559
elif self.type == 'proxy':
553560
run_list.append('role[deis-proxy]')
554561
attrs.setdefault('deis', {}).setdefault(
555-
'proxy', {}).setdefault('formations', [ self.formation.id ])
562+
'proxy', {}).setdefault('formations', [formation_id])
556563
# add the formation's ssh pubkey
557564
init.setdefault('ssh_authorized_keys', []).append(
558-
self.formation.ssh_public_key)
565+
self.formation.ssh_public_key)
559566
# add all of the owner's SSH keys
560-
init['ssh_authorized_keys'].extend([k.public for k in self.formation.owner.key_set.all() ])
567+
init['ssh_authorized_keys'].extend(
568+
[k.public for k in self.formation.owner.key_set.all()])
561569
ssh_username = self.formation.ssh_username
562570
ssh_private_key = self.formation.ssh_private_key
563571
args = (self.uuid, creds, params, init, ssh_username, ssh_private_key)
@@ -722,7 +730,8 @@ class Build(UuidAuditedModel):
722730
dockerfile = models.TextField(blank=True)
723731
config = fields.EnvVarsField(blank=True)
724732
# slug info, TODO: replace default URL with something more user friendly
725-
url = models.URLField('URL', default='https://s3.amazonaws.com/gabrtv-slugs/nodejs.tar.gz')
733+
url = models.URLField(
734+
'URL', default='https://s3.amazonaws.com/gabrtv-slugs/nodejs.tar.gz')
726735
size = models.IntegerField(blank=True, null=True)
727736
checksum = models.CharField(max_length=255, blank=True)
728737

@@ -768,7 +777,7 @@ def rollback(self):
768777
def new_release(sender, **kwargs):
769778
formation, user = kwargs['formation'], kwargs['user']
770779
last_release = Release.objects.filter(
771-
formation=formation).order_by('-created')[0]
780+
formation=formation).order_by('-created')[0]
772781
image = kwargs.get('image', last_release.image)
773782
config = kwargs.get('config', last_release.config)
774783
build = kwargs.get('build', last_release.build)
@@ -787,9 +796,9 @@ def new_release(sender, **kwargs):
787796
owner=user, formation=formation, values=new_values)
788797
# create new release and auto-increment version
789798
new_version = last_release.version + 1
790-
release = Release.objects.create(owner=user, formation=formation,
791-
image=image, config=config, build=build, args=args, command=command,
792-
version=new_version)
799+
release = Release.objects.create(
800+
owner=user, formation=formation, image=image, config=config,
801+
build=build, args=args, command=command, version=new_version)
793802
return release
794803

795804

@@ -847,4 +856,3 @@ def create_auth_token(sender, instance=None, created=False, **kwargs):
847856
if created:
848857
# pylint: disable=E1101
849858
Token.objects.create(user=instance)
850-

api/serializers.py

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55

66
from __future__ import unicode_literals
77

8+
from django.contrib.auth.models import User
89
from rest_framework import serializers
910

1011
from api import models, utils
1112

12-
from django.contrib.auth.models import User
13-
14-
1513

1614
class UserSerializer(serializers.ModelSerializer):
1715

@@ -20,8 +18,8 @@ class UserSerializer(serializers.ModelSerializer):
2018
class Meta:
2119
"""Metadata options for a UserSerializer."""
2220
model = User
23-
read_only_fields = ('is_superuser', 'is_staff', 'groups', 'user_permissions',
24-
'last_login', 'date_joined')
21+
read_only_fields = ('is_superuser', 'is_staff', 'groups',
22+
'user_permissions', 'last_login', 'date_joined')
2523

2624
@property
2725
def data(self):
@@ -63,7 +61,7 @@ class FlavorSerializer(serializers.ModelSerializer):
6361

6462
owner = serializers.Field(source='owner.username')
6563
provider = serializers.SlugRelatedField(slug_field='id')
66-
64+
6765
class Meta:
6866
"""Metadata options for a FlavorSerializer."""
6967
model = models.Flavor
@@ -76,9 +74,9 @@ class ConfigSerializer(serializers.ModelSerializer):
7674

7775
owner = serializers.Field(source='owner.username')
7876
formation = serializers.SlugRelatedField(slug_field='id')
79-
values = serializers.ModelField(model_field=models.Config()._meta.get_field('values'),
80-
required=False)
81-
77+
values = serializers.ModelField(
78+
model_field=models.Config()._meta.get_field('values'), required=False)
79+
8280
class Meta:
8381
"""Metadata options for a ConfigSerializer."""
8482
model = models.Config
@@ -91,7 +89,7 @@ class BuildSerializer(serializers.ModelSerializer):
9189

9290
owner = serializers.Field(source='owner.username')
9391
formation = serializers.SlugRelatedField(slug_field='id')
94-
92+
9593
class Meta:
9694
"""Metadata options for a BuildSerializer."""
9795
model = models.Build
@@ -106,7 +104,7 @@ class ReleaseSerializer(serializers.ModelSerializer):
106104
formation = serializers.SlugRelatedField(slug_field='id')
107105
config = serializers.SlugRelatedField(slug_field='uuid')
108106
build = serializers.SlugRelatedField(slug_field='uuid', required=False)
109-
107+
110108
class Meta:
111109
"""Metadata options for a ReleaseSerializer."""
112110
model = models.Release
@@ -121,8 +119,9 @@ class FormationSerializer(serializers.ModelSerializer):
121119
id = serializers.SlugField(default=utils.generate_app_name)
122120
flavor = serializers.SlugRelatedField(slug_field='id')
123121
structure = serializers.ModelField(
124-
model_field=models.Formation()._meta.get_field('structure'), required=False)
125-
122+
model_field=models.Formation()._meta.get_field('structure'),
123+
required=False)
124+
126125
class Meta:
127126
"""Metadata options for a FormationSerializer."""
128127
model = models.Formation
@@ -144,35 +143,35 @@ class NodeSerializer(serializers.ModelSerializer):
144143

145144
owner = serializers.Field(source='owner.username')
146145
formation = serializers.SlugRelatedField(slug_field='id')
147-
146+
148147
class Meta:
149148
"""Metadata options for a NodeSerializer."""
150149
model = models.Node
151150
read_only_fields = ('created', 'updated')
152151

153152

154153
class BackendSerializer(serializers.ModelSerializer):
155-
154+
156155
"""Serializes a Backend model."""
157-
156+
158157
owner = serializers.Field(source='owner.username')
159158
formation = serializers.SlugRelatedField(slug_field='id')
160159
node = serializers.SlugRelatedField(slug_field='uuid')
161-
160+
162161
class Meta:
163162
"""Metadata options for a BackendSerializer."""
164163
model = models.Backend
165164
read_only_fields = ('created', 'updated')
166165

167166

168167
class ProxySerializer(serializers.ModelSerializer):
169-
168+
170169
"""Serializes a Proxy model."""
171-
170+
172171
owner = serializers.Field(source='owner.username')
173172
formation = serializers.SlugRelatedField(slug_field='id')
174173
node = serializers.SlugRelatedField(slug_field='uuid')
175-
174+
176175
class Meta:
177176
"""Metadata options for a ProxySerializer."""
178177
model = models.Proxy
@@ -186,7 +185,7 @@ class ContainerSerializer(serializers.ModelSerializer):
186185
owner = serializers.Field(source='owner.username')
187186
formation = serializers.SlugRelatedField(slug_field='id')
188187
node = serializers.SlugRelatedField(slug_field='uuid')
189-
188+
190189
class Meta:
191190
"""Metadata options for a ContainerSerializer."""
192191
model = models.Container

api/tests/auth.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def test_auth(self):
3030
username, password = 'newuser', 'password'
3131
first_name, last_name = 'Otto', 'Test'
3232
email = 'autotest@deis.io'
33-
submit = {'username': username, 'password': password,
33+
submit = {'username': username, 'password': password,
3434
'first_name': first_name, 'last_name': last_name,
3535
'email': email,
3636
# try to abuse superuser/staff level perms
@@ -55,4 +55,4 @@ def test_auth(self):
5555
url = '/api/flavors'
5656
response = self.client.get(url)
5757
self.assertEqual(response.status_code, 200)
58-
self.assertEqual(response.data['count'], 8) # 8 regions
58+
self.assertEqual(response.data['count'], 8) # 8 regions

api/tests/backend.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def setUp(self):
3030
'params': json.dumps({'region': 'us-west-2', 'instance_size': 'm1.medium'})}
3131
response = self.client.post(url, json.dumps(body), content_type='application/json')
3232
self.assertEqual(response.status_code, 201)
33-
33+
3434
def test_backend(self):
3535
url = '/api/formations'
3636
body = {'id': 'autotest', 'flavor': 'autotest', 'image': 'deis/autotest'}
@@ -67,4 +67,4 @@ def test_backend(self):
6767
url = '/api/formations/{formation_id}/backends'.format(**locals())
6868
response = self.client.get(url)
6969
self.assertEqual(response.status_code, 200)
70-
self.assertEqual(len(response.data['results']), 0)
70+
self.assertEqual(len(response.data['results']), 0)

api/tests/build.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def setUp(self):
3333
'params': json.dumps({'region': 'us-west-2', 'instance_size': 'm1.medium'})}
3434
response = self.client.post(url, json.dumps(body), content_type='application/json')
3535
self.assertEqual(response.status_code, 201)
36-
36+
3737
def test_build(self):
3838
"""
3939
Test that a null build is created on a new formation, and that users
@@ -75,4 +75,3 @@ def test_build(self):
7575
self.assertEqual(self.client.put(url).status_code, 405)
7676
self.assertEqual(self.client.patch(url).status_code, 405)
7777
self.assertEqual(self.client.delete(url).status_code, 405)
78-

api/tests/config.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def setUp(self):
3333

3434
def test_config(self):
3535
"""
36-
Test that config is auto-created during a new formation and that
36+
Test that config is auto-created during a new formation and that
3737
new versions can be created using a PATCH
3838
"""
3939
url = '/api/formations'
@@ -92,6 +92,3 @@ def test_config(self):
9292
self.assertEqual(self.client.put(url).status_code, 405)
9393
self.assertEqual(self.client.patch(url).status_code, 405)
9494
self.assertEqual(self.client.delete(url).status_code, 405)
95-
96-
97-

api/tests/container.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def setUp(self):
3333
'params': json.dumps({'region': 'us-west-2', 'instance_size': 'm1.medium'})}
3434
response = self.client.post(url, json.dumps(body), content_type='application/json')
3535
self.assertEqual(response.status_code, 201)
36-
36+
3737
def test_container_scale(self):
3838
url = '/api/formations'
3939
body = {'id': 'autotest', 'flavor': 'autotest', 'image': 'deis/autotest'}

0 commit comments

Comments
 (0)