Skip to content

Commit aa8bafc

Browse files
Gabriel MonroyMatthew Fisher
authored andcommitted
refactor(scheduler): adapt web app to new cluster domain object
1 parent 469ee72 commit aa8bafc

9 files changed

Lines changed: 66 additions & 133 deletions

File tree

controller/web/fixtures/test_web.json

Lines changed: 7 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -54,81 +54,16 @@
5454
}
5555
},
5656
{
57-
"pk": "3daa9d07-d6b8-40c2-869d-792e2438140d",
58-
"model": "api.flavor",
59-
"fields": {
60-
"updated": "2013-11-25T21:58:46.672Z",
61-
"created": "2013-11-25T21:58:46.671Z",
62-
"params": "{}",
63-
"provider": "d879d3c5-1953-4b1e-92ef-e14ab3d52cf8",
64-
"owner": 2,
65-
"id": "mock-west"
66-
}
67-
},
68-
{
69-
"pk": "79121781-9cbb-4300-94ac-59131a0bc487",
70-
"model": "api.flavor",
71-
"fields": {
72-
"updated": "2013-11-25T21:59:31.237Z",
73-
"created": "2013-11-25T21:59:31.237Z",
74-
"params": "{}",
75-
"provider": "1f251c8b-c72b-4616-9c92-126890bf1567",
76-
"owner": 3,
77-
"id": "mock-west"
78-
}
79-
},
80-
{
81-
"pk": "1f251c8b-c72b-4616-9c92-126890bf1567",
82-
"model": "api.provider",
83-
"fields": {
84-
"updated": "2013-11-25T21:59:31.227Z",
85-
"created": "2013-11-25T21:59:31.227Z",
86-
"owner": 3,
87-
"type": "mock",
88-
"id": "mock",
89-
"creds": "{}"
90-
}
91-
},
92-
{
93-
"pk": "d879d3c5-1953-4b1e-92ef-e14ab3d52cf8",
94-
"model": "api.provider",
95-
"fields": {
96-
"updated": "2013-11-25T21:58:46.658Z",
97-
"created": "2013-11-25T21:58:46.658Z",
98-
"owner": 2,
99-
"type": "mock",
100-
"id": "mock",
101-
"creds": "{}"
102-
}
103-
},
104-
{
105-
"pk": "f74ab47c-d20e-4cb5-893a-9bcda9f40f08",
106-
"model": "api.layer",
107-
"fields": {
108-
"updated": "2013-11-25T22:09:38.150Z",
109-
"created": "2013-11-25T22:09:38.150Z",
110-
"ssh_port": 22,
111-
"ssh_username": "ubuntu",
112-
"formation": "2345a3e0-867e-4839-928b-449380dd99f7",
113-
"proxy": true,
114-
"owner": 2,
115-
"ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUnuepSvLVxC1XUbZE2LAMdu4tqOSJFx9aZ2HMY7xmeYovHVUFOb8+AGgwhOfHuAh7E1N3dB4/HbbUoO/l6eyU6RHiQn7eq0OltaGn1WgGLNSjDRZwf/4MoFAKGZr3BUGQ6cN9O65K8FsnK0urQTRoTmA5m/QtFGBC9AJLu1/XWIYs/IHs/HrVWecsAMdM/6ulgdrsosammhkv89mfBSJHY5Wuy1Eg1EArG/cv5Bi0LRDuzz3j1sASKZIug82N5QfVZ4xRPz0ZEpotFOAu7KC4r078XQakBH+arphTunyScTZO30ysak2SACBT9kprbIW8FXwf23e19ygAFDo8l1/J",
116-
"flavor": "3daa9d07-d6b8-40c2-869d-792e2438140d",
117-
"runtime": true,
118-
"config": "{}",
119-
"id": "runtime",
120-
"ssh_private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA1J7nqUry1cQtV1G2RNiwDHbuLajkiRcfWmdhzGO8ZnmKLx1V\nBTm/PgBoMITnx7gIexNTd3QePx221KDv5enslOkR4kJ+3qtDpbWhp9VoBizUow0W\ncH/+DKBQChma9wVBkOnDfTuuSvBbJytLq0E0aE5gOZv0LRRgQvQCS7tf11iGLPyB\n7Px61VnnLADHTP+rpYHa7KLGppoZL/PZnwUiR2OVrstRINRAKxv3L+QYtC0Q7s89\n49bAEimSLoPNjeUH1WeMUT89GRKaLRTgLuyguK9O/F0GpAR/mq6YU7p8knE2Tt9M\nrGpNkgAgU/ZKa2yFvBV8H9t3tfcoABQ6PJdfyQIDAQABAoIBADZuwAwdPfHwGVOD\nfdA+UUO/ptZVqLxYCRTR5r22wuLRNsk9DykZUZaD8CiLvfLpcHJhzjqEpcGuz8G7\nue74ZjLxQDzWnThQTC8+QrZ+8fSywXVEwnvmqJl+6T7Ms1mOJOz+i6eiAcr5obxz\nXxnmxY32krfs7yQjVUmOwo+01qKAdadfnOoOCLTGc/UG7IEsutjtu18x7nkvDs0s\nj12t/osJ8OBWXpwbitYYxSUkVPrivyvO8W5yvKPRpsSrSD7yDLr1SHNp1OHqZbed\nDZJHx8eXdZxmthxRW4Vb8H2nDRZznpUs3VDuevghaD5VmoLgeYf15ogtoMApqjaw\ncXF5MckCgYEA3QJz7jWKWQ3774FWDT6Q8kHoJdYDEr4k6S545v9pHt0H0YeN2AGG\nOBmDIca5CBN37nwT0UR8eXZYxLw6RaEiF1VC7Ld6j4L9k3USYVCYJm/epESh+b8X\nm1MrKbqzc7auJF647VQ/1DmdZ68l+df8D0i5m28w2vJ69sDSPARUe38CgYEA9khz\nVVi9X4f3ore24R2UiIm0zRcnOuT8b3IAyIm9NiXnQcDmhKZtkiEa74DjIvMLV4Hd\nzA5GupeRxxgceaPK+Fu8sccUmGlyr5hSfahyx3/4KrwuXPPyiid6zFl/9XUvuOkM\nTdyb70AWypdbwrrCdBBP6GjUOOMvYKIevq+46LcCgYAS09Wqclcx1PYkZiE9iZnx\neVncd0nVu+sLDlFwZEvBPFUhLWoQ/7g+aTX5l6NFo9rwrxNFHY95DXLsd5iDPAHa\neQH1hn/jX+ZYPH3vWl1L0PXnio096GCLc99Wc7g74FEfeg5I8YdqfeoB3jLfAN5R\nMwHU0vkXfdap1K1UPY4w4wKBgGwFgRi5EG67S2GCZOM+PyzYAYZHFnzdfN9AyJks\n2OHMJC+R9UnPWZXTkWXlSTrGEX5zRp4+0MT8wALsT2kG73qZeh0bravf7F6aV+wn\nmxhnx6iu20MH+KSiBlllFBvMJ39aMHxiO77nhFedpbC2i52une3ZNOQyuVAQK54F\novvnAoGBAKqCEF0HCEmDIMyWy4dZhwA+9+I6q1hmXVuVZxSk1iTO7S4rKT590jAl\nWcRw/kS3rdrmLZvoBYnIOUJk356TCVNOVDwp3CXmD9/P/GIXzhWQtScZdBd91ekU\n4h+84S5yGdaF3SEJz1+UIdlh1lWxndBVyFucuSI0RF/FOB9jK7iE\n-----END RSA PRIVATE KEY-----"
121-
}
122-
},
123-
{
124-
"pk": "2345a3e0-867e-4839-928b-449380dd99f7",
125-
"model": "api.formation",
57+
"pk": "80e9db5a-d394-41c7-b153-3ea0314dc8ca",
58+
"model": "api.cluster",
12659
"fields": {
12760
"updated": "2013-11-25T22:09:36.726Z",
12861
"created": "2013-11-25T22:09:36.726Z",
129-
"domain": null,
62+
"domain": "autotest.local",
13063
"owner": 2,
131-
"nodes": "{}",
64+
"hosts": "host1,host2",
65+
"auth": "base64string",
66+
"options": "{}",
13267
"id": "autotest-1"
13368
}
13469
},
@@ -138,9 +73,8 @@
13873
"fields": {
13974
"updated": "2013-11-25T22:09:36.726Z",
14075
"created": "2013-11-25T22:09:36.726Z",
141-
"formation": "2345a3e0-867e-4839-928b-449380dd99f7",
76+
"cluster": "80e9db5a-d394-41c7-b153-3ea0314dc8ca",
14277
"owner": 2,
143-
"containers": "{}",
14478
"id": "autotest-1-app"
14579
}
14680
}

controller/web/templates/web/apps.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ <h3>{{ app.id }}</h3>
1919
<dd>{{ app.created }}</dd>
2020
<dt>Owned by</dt>
2121
<dd>{{ app.owner }}</dd>
22-
<dt>In formation</dt>
23-
<dd><a href="{% url 'formations' %}#{{ app.formation }}"
24-
class="pink">{{ app.formation }}</a></dd>
22+
<dt>In cluster</dt>
23+
<dd><a href="{% url 'clusters' %}#{{ app.cluster }}"
24+
class="pink">{{ app.cluster }}</a></dd>
2525
</dl>
2626
</div>
2727
<div class="span3">

controller/web/templates/web/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<li><a href="{% url "dashboard" %}"><img class="logo" src="{% static "img/menu-logo.png" %}" alt="deis logo"></a></li>
3434
<li class="divider"></li>
3535
{% if user.is_authenticated %}
36-
<li class="navitem{% ifequal page "formations" %} selected pink{% endifequal %}"><a href="{% url "formations" %}">Formations</a></li>
36+
<li class="navitem{% ifequal page "clusters" %} selected pink{% endifequal %}"><a href="{% url "clusters" %}">Clusters</a></li>
3737
<li class="divider"></li>
3838
<li class="navitem{% ifequal page "apps" %} selected blue{% endifequal %}"><a href="{% url "apps" %}">Apps</a></li>
3939
<li class="divider"></li>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{% extends "web/base.html" %}
2+
{% load humanize %}
3+
4+
{% block title %}Clusters{% endblock %}
5+
6+
{% block content %}
7+
<div class="pink">
8+
<h1>{% if clusters %}{{ clusters|length|apnumber|capfirst }}{% else %}No{% endif %} Cluster{{ clusters|pluralize }}</h1>
9+
{% for cluster in clusters %}
10+
<a name="cluster.id"></a>
11+
<div class="row-fluid well">
12+
<div class="span3">
13+
<h3>{{ cluster.id }}</h3>
14+
</div>
15+
<div class="span6">
16+
<dl class="dl-horizontal">
17+
<dt>Updated</dt>
18+
<dd>{{ cluster.updated }}</dd>
19+
<dt>Created</dt>
20+
<dd>{{ cluster.created }}</dd>
21+
<dt>Owned by</dt>
22+
<dd>{{ cluster.owner }}</dd>
23+
{% if domain %}
24+
<dt>Domain</dt>
25+
<dd>{{ cluster.domain }}</dd>
26+
{% endif %}
27+
</dl>
28+
</div>
29+
<div class="span3">
30+
{% for node in cluster.jobs %}
31+
{{ job }}
32+
{% endfor %}
33+
</div>
34+
</div>
35+
{% endfor %}
36+
</div>
37+
{% endblock %}

controller/web/templates/web/dashboard.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<div class="green">
88
<h1>Dashboard</h1>
99
<p>
10-
You have <a href="{% url "formations" %}">{% if formations %}{{ formations|length|apnumber }}{% else %}no{% endif %} formation{{ formations|pluralize }}</a> and <a href="{% url "apps" %}">{% if apps %}{{ apps|length|apnumber }}{% else %}no{% endif %} app{{ apps|pluralize }}</a>.
10+
You have <a href="{% url "clusters" %}">{% if clusters %}{{ clusters|length|apnumber }}{% else %}no{% endif %} cluster{{ clusters|pluralize }}</a> and <a href="{% url "apps" %}">{% if apps %}{{ apps|length|apnumber }}{% else %}no{% endif %} app{{ apps|pluralize }}</a>.
1111
</p>
1212
<p>
1313
Connected to Deis controller v{{ version }} at

controller/web/templates/web/formations.html

Lines changed: 0 additions & 37 deletions
This file was deleted.

controller/web/tests.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ def test_dashboard(self):
3232
self.assertContains(response, '<title>Deis | Dashboard</title>', html=True)
3333
self.assertContains(
3434
response,
35-
r'You have <a href="/formations/">one formation</a> and <a href="/apps/">one app</a>.')
35+
r'You have <a href="/clusters/">one cluster</a> and <a href="/apps/">one app</a>.')
3636

37-
def test_formations(self):
38-
response = self.client.get('/formations/')
39-
self.assertContains(response, '<title>Deis | Formations</title>', html=True)
40-
self.assertContains(response, '<h1>One Formation</h1>')
37+
def test_clusters(self):
38+
response = self.client.get('/clusters/')
39+
self.assertContains(response, '<title>Deis | Clusters</title>', html=True)
40+
self.assertContains(response, '<h1>One Cluster</h1>')
4141
self.assertContains(response, '<h3>autotest-1</h3>')
4242
self.assertContains(response, '<dt>Owned by</dt>')
4343
self.assertContains(response, '<dd>autotest-1</dd>')
@@ -58,9 +58,9 @@ def test_support(self):
5858

5959
class GravatarTagsTest(TestCase):
6060

61-
def _render_template(self, str, ctx=None):
61+
def _render_template(self, t, ctx=None):
6262
"""Test that the tag renders a gravatar URL."""
63-
tmpl = Template(str)
63+
tmpl = Template(t)
6464
return tmpl.render(Context(ctx)).strip()
6565

6666
def test_render(self):

controller/web/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
url(r'^$', 'dashboard', name='dashboard'),
1414
url(r'^account/$', 'account', name='account'),
1515
url(r'^apps/$', 'apps', name='apps'),
16-
url(r'^formations/$', 'formations', name='formations'),
16+
url(r'^clusters/$', 'clusters', name='clusters'),
1717
url(r'^support/$', 'support', name='support'),
1818
)

controller/web/views.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
from django.contrib.auth.decorators import login_required
66
from django.shortcuts import render
77

8-
from api.models import App
9-
from api.models import Formation
8+
from api.models import App, Cluster
109
from deis import __version__
1110

1211

@@ -22,22 +21,22 @@ def account(request):
2221
def dashboard(request):
2322
"""Return the user's dashboard web page."""
2423
apps = App.objects.filter(owner=request.user)
25-
formations = Formation.objects.filter(owner=request.user)
24+
clusters = Cluster.objects.filter(owner=request.user)
2625
return render(request, 'web/dashboard.html', {
2726
'page': 'dashboard',
2827
'apps': apps,
29-
'formations': formations,
28+
'clusters': clusters,
3029
'version': __version__,
3130
})
3231

3332

3433
@login_required
35-
def formations(request):
36-
"""Return the user's formations web page."""
37-
formations = Formation.objects.filter(owner=request.user)
38-
return render(request, 'web/formations.html', {
39-
'page': 'formations',
40-
'formations': formations,
34+
def clusters(request):
35+
"""Return the user's clusters web page."""
36+
clusters = Cluster.objects.filter(owner=request.user)
37+
return render(request, 'web/clusters.html', {
38+
'page': 'clusters',
39+
'clusters': clusters,
4140
})
4241

4342

0 commit comments

Comments
 (0)