Skip to content

Commit 62c32ab

Browse files
committed
ref(scheduler): move a lot of scheduler functions from private to public
Many were already being used in the Models
1 parent 825e1ba commit 62c32ab

9 files changed

Lines changed: 115 additions & 115 deletions

File tree

rootfs/api/models/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def _scheduler(self):
5252
def _fetch_service_config(self, app):
5353
try:
5454
# Get the service from k8s to attach the domain correctly
55-
svc = self._scheduler._get_service(app, app).json()
55+
svc = self._scheduler.get_service(app, app).json()
5656
except KubeException as e:
5757
raise ServiceUnavailable('Could not fetch Kubernetes Service {}'.format(app)) from e
5858

@@ -89,7 +89,7 @@ def _save_service_config(self, app, component, data):
8989

9090
# Update the k8s service for the application with new service information
9191
try:
92-
self._scheduler._update_service(app, app, svc)
92+
self._scheduler.update_service(app, app, svc)
9393
except KubeException as e:
9494
raise ServiceUnavailable('Could not update Kubernetes Service {}'.format(app)) from e
9595

rootfs/api/models/app.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def save(self, *args, **kwargs):
8383
self.release_set.latest()
8484
except Release.DoesNotExist:
8585
try:
86-
if self._scheduler._get_namespace(self.id).status_code == 200:
86+
if self._scheduler.get_namespace(self.id).status_code == 200:
8787
# Namespace already exists
8888
err = "{} already exists as a namespace in this kuberenetes setup".format(self.id) # noqa
8989
self.log(err, logging.INFO)
@@ -214,7 +214,7 @@ def restart(self, **kwargs): # noqa
214214
if 'name' not in kwargs:
215215
desired = 0
216216
labels = self._scheduler_filter(**kwargs)
217-
controllers = self._scheduler._get_rcs(kwargs['id'], labels=labels).json()['items']
217+
controllers = self._scheduler.get_rcs(kwargs['id'], labels=labels).json()['items']
218218
for controller in controllers:
219219
desired += controller['spec']['replicas']
220220
except KubeException:
@@ -224,7 +224,7 @@ def restart(self, **kwargs): # noqa
224224
try:
225225
for pod in self.list_pods(**kwargs):
226226
# This function verifies the delete. Gives pod 30 seconds
227-
self._scheduler._delete_pod(self.id, pod['name'])
227+
self._scheduler.delete_pod(self.id, pod['name'])
228228
except Exception as e:
229229
err = "warning, some pods failed to stop:\n{}".format(str(e))
230230
self.log(err, logging.WARNING)
@@ -617,24 +617,24 @@ def list_pods(self, *args, **kwargs):
617617

618618
# in case a singular pod is requested
619619
if 'name' in kwargs:
620-
pods = [self._scheduler._get_pod(self.id, kwargs['name']).json()]
620+
pods = [self._scheduler.get_pod(self.id, kwargs['name']).json()]
621621
else:
622-
pods = self._scheduler._get_pods(self.id, labels=labels).json()['items']
622+
pods = self._scheduler.get_pods(self.id, labels=labels).json()['items']
623623

624624
data = []
625625
for p in pods:
626626
# specifically ignore run pods
627627
if p['metadata']['labels']['type'] == 'run':
628628
continue
629629

630-
state = str(self._scheduler._pod_state(p))
630+
state = str(self._scheduler.pod_state(p))
631631

632632
# follows kubelete convention - these are hidden unless show-all is set
633633
if state in ['down', 'crashed']:
634634
continue
635635

636636
# hide pod if it is passed the graceful termination period
637-
if self._scheduler._pod_deleted(p):
637+
if self._scheduler.pod_deleted(p):
638638
continue
639639

640640
item = Pod()

rootfs/api/models/certificate.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,14 +179,14 @@ def attach_in_kubernetes(self, domain):
179179
'tls.key': self.key
180180
}
181181

182-
secret = self._scheduler._get_secret(app, name).json()['data']
182+
secret = self._scheduler.get_secret(app, name).json()['data']
183183
except KubeException:
184-
self._scheduler._create_secret(app, name, data)
184+
self._scheduler.create_secret(app, name, data)
185185
else:
186186
# update cert secret to the TLS Ingress format if required
187187
if secret != data:
188188
try:
189-
self._scheduler._update_secret(app, name, data)
189+
self._scheduler.update_secret(app, name, data)
190190
except KubeException as e:
191191
msg = 'There was a problem updating the certificate secret ' \
192192
'{} for {}'.format(name, app)
@@ -221,8 +221,8 @@ def detach(self, *args, **kwargs):
221221
if len(self.domains) == 0:
222222
try:
223223
# We raise an exception when a secret doesn't exist
224-
self._scheduler._get_secret(app, name)
225-
self._scheduler._delete_secret(app, name)
224+
self._scheduler.get_secret(app, name)
225+
self._scheduler.delete_secret(app, name)
226226
except KubeException as e:
227227
raise ServiceUnavailable("Could not delete certificate secret {} for application {}".format(name, app)) from e # noqa
228228

rootfs/api/models/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def set_tags(self, previous_config):
9898
return
9999

100100
# Get all nodes with label selectors
101-
nodes = self._scheduler._get_nodes(labels=self.tags).json()
101+
nodes = self._scheduler.get_nodes(labels=self.tags).json()
102102
if nodes['items']:
103103
return
104104

rootfs/api/models/release.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ def cleanup_old(self):
261261
'heritage': 'deis'
262262
}
263263
controller_removal = []
264-
controllers = self._scheduler._get_rcs(self.app.id, labels=labels).json()
264+
controllers = self._scheduler.get_rcs(self.app.id, labels=labels).json()
265265
for controller in controllers['items']:
266266
current_version = controller['metadata']['labels']['version']
267267
# skip the latest release
@@ -288,30 +288,30 @@ def cleanup_old(self):
288288
'app': self.app.id,
289289
'type': 'env'
290290
}
291-
secrets = self._scheduler._get_secrets(self.app.id, labels=labels).json()
291+
secrets = self._scheduler.get_secrets(self.app.id, labels=labels).json()
292292
for secret in secrets['items']:
293293
current_version = secret['metadata']['labels']['version']
294294
# skip the latest release
295295
if current_version == latest_version:
296296
continue
297297

298-
self._scheduler._delete_secret(self.app.id, secret['metadata']['name'])
298+
self._scheduler.delete_secret(self.app.id, secret['metadata']['name'])
299299

300300
# Remove stray pods
301301
labels = {
302302
'heritage': 'deis'
303303
}
304-
pods = self._scheduler._get_pods(self.app.id, labels=labels).json()
304+
pods = self._scheduler.get_pods(self.app.id, labels=labels).json()
305305
for pod in pods['items']:
306-
if self._scheduler._pod_deleted(pod):
306+
if self._scheduler.pod_deleted(pod):
307307
continue
308308

309309
current_version = pod['metadata']['labels']['version']
310310
# skip the latest release
311311
if current_version == latest_version:
312312
continue
313313

314-
self._scheduler._delete_pod(self.app.id, pod['metadata']['name'])
314+
self._scheduler.delete_pod(self.app.id, pod['metadata']['name'])
315315

316316
def _delete_release_in_scheduler(self, namespace, version):
317317
"""
@@ -325,14 +325,14 @@ def _delete_release_in_scheduler(self, namespace, version):
325325
'app': namespace,
326326
'version': 'v{}'.format(version)
327327
}
328-
controllers = self._scheduler._get_rcs(namespace, labels=labels).json()
328+
controllers = self._scheduler.get_rcs(namespace, labels=labels).json()
329329
for controller in controllers['items']:
330-
self._scheduler._cleanup_release(namespace, controller)
330+
self._scheduler.cleanup_release(namespace, controller)
331331

332332
# remove secret that contains env vars for the release
333333
try:
334334
secret_name = "{}-{}-env".format(namespace, version)
335-
self._scheduler._delete_secret(namespace, secret_name)
335+
self._scheduler.delete_secret(namespace, secret_name)
336336
except KubeHTTPException:
337337
pass
338338

rootfs/api/tests/test_domain.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,16 +216,16 @@ def test_kubernetes_service_failure(self):
216216
"""
217217
self.client.post('/v2/apps', {'id': 'test'})
218218

219-
# scheduler._get_service exception
220-
with mock.patch('scheduler.KubeHTTPClient._get_service') as mock_kube:
219+
# scheduler.get_service exception
220+
with mock.patch('scheduler.KubeHTTPClient.get_service') as mock_kube:
221221
mock_kube.side_effect = KubeException('Boom!')
222222
domain = 'foo.com'
223223
url = '/v2/apps/test/domains'
224224
response = self.client.post(url, {'domain': domain})
225225
self.assertEqual(response.status_code, 503, response.data)
226226

227-
# scheduler._update_service exception
228-
with mock.patch('scheduler.KubeHTTPClient._update_service') as mock_kube:
227+
# scheduler.update_service exception
228+
with mock.patch('scheduler.KubeHTTPClient.update_service') as mock_kube:
229229
domain = 'foo.com'
230230
url = '/v2/apps/test/domains'
231231
response = self.client.post(url, {'domain': domain})

rootfs/api/tests/test_pods.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -840,8 +840,8 @@ def test_list_pods_failure(self, mock_requests):
840840
self.assertEqual(response.status_code, 201, response.data)
841841
app_id = response.data['id']
842842

843-
with mock.patch('scheduler.KubeHTTPClient._get_pod') as kube_pod:
844-
with mock.patch('scheduler.KubeHTTPClient._get_pods') as kube_pods:
843+
with mock.patch('scheduler.KubeHTTPClient.get_pod') as kube_pod:
844+
with mock.patch('scheduler.KubeHTTPClient.get_pods') as kube_pods:
845845
kube_pod.side_effect = KubeException('boom!')
846846
kube_pods.side_effect = KubeException('boom!')
847847
url = "/v2/apps/{app_id}/pods".format(**locals())

0 commit comments

Comments
 (0)