Skip to content

Commit 1ac6b54

Browse files
committed
fix(release): return port from get_port for non-routable process types
Env Vars are stored in a Secret, where there is 1 secret per Release. This causes a situation where non-web/cmd proc types will overwrite the Secret data during deploys. This is the only way possible (for now) since env vars are per Release and not per proc type
1 parent 2327bb1 commit 1ac6b54

3 files changed

Lines changed: 7 additions & 12 deletions

File tree

rootfs/api/models/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ def _scale_pods(self, scale_types):
385385
# http://docs.deis.io/en/latest/using_deis/process-types/#web-vs-cmd-process-types
386386
routable = True if scale_type in ['web', 'cmd'] else False
387387
# fetch application port and inject into ENV Vars as needed
388-
port = release.get_port(routable)
388+
port = release.get_port()
389389
if port:
390390
envs['PORT'] = port
391391

@@ -440,7 +440,7 @@ def deploy(self, release):
440440
# http://docs.deis.io/en/latest/using_deis/process-types/#web-vs-cmd-process-types
441441
routable = True if scale_type in ['web', 'cmd'] else False
442442
# fetch application port and inject into ENV vars as needed
443-
port = release.get_port(routable)
443+
port = release.get_port()
444444
if port:
445445
envs['PORT'] = port
446446

rootfs/api/models/release.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def publish(self):
134134
deis_registry = bool(self.build.source_based)
135135
publish_release(source_image, self.image, deis_registry, self.get_registry_auth())
136136

137-
def get_port(self, routable=False):
137+
def get_port(self):
138138
"""
139139
Get application port for a given release. If pulling from private registry
140140
then use default port or read from ENV var, otherwise attempt to pull from
@@ -145,11 +145,6 @@ def get_port(self, routable=False):
145145
envs = self.config.values
146146
creds = self.get_registry_auth()
147147

148-
port = None
149-
# Only care about port for routable application
150-
if not routable:
151-
return port
152-
153148
if self.build.type == "buildpack":
154149
self.app.log('buildpack type detected. Defaulting to $PORT 5000')
155150
return 5000

rootfs/api/tests/test_release.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -369,11 +369,11 @@ def test_release_get_port(self, mock_requests):
369369
self.assertEqual(response.status_code, 201, response.data)
370370
release = app.release_set.latest()
371371

372-
# when app is not routable, returns None
373-
self.assertEqual(release.get_port(), None)
372+
# when app is not routable, then it still return 5000
373+
self.assertEqual(release.get_port(), 5000)
374374

375375
# when a buildpack type, default to 5000
376-
self.assertEqual(release.get_port(routable=True), 5000)
376+
self.assertEqual(release.get_port(), 5000)
377377

378378
# switch to a dockerfile app or else it'll automatically default to 5000
379379
url = '/v2/apps/{app_id}/builds'.format(**locals())
@@ -388,6 +388,6 @@ def test_release_get_port(self, mock_requests):
388388
release = app.release_set.latest()
389389

390390
# check that the port number returned is an int, not a string
391-
self.assertEqual(release.get_port(routable=True), 8080)
391+
self.assertEqual(release.get_port(), 8080)
392392

393393
# TODO(bacongobbler): test dockerfile ports

0 commit comments

Comments
 (0)