1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
import json
from django.shortcuts import render
from automationstatus.models import AutomationStatus, Summary
from automationstatus.models import DeploymentWorkflow, OrchestrationWorkflow
from django.core import serializers
from .services.caasqueryservice import CaaSQueryService
def filter_by(filter):
workflow = DeploymentWorkflow.objects.select_related('cluster')
if (filter == None):
return workflow.all()
elif (filter == 'online'):
return workflow.filter(online=True).all()
elif (filter == 'firmware_scheduled'):
return workflow.filter(firmware_scheduled=True).filter(firmware_upgraded=False).all()
elif (filter == 'firmware_upgraded'):
return workflow.filter(firmware_upgraded = True)
elif (filter == 'wr_scheduled'):
return workflow.filter(wr_scheduled=True).filter(wr_installed=False).all()
elif (filter == 'wr_installed'):
return workflow.filter(wr_installed = True)
return workflow.all()
def dashboard(request):
print("in dashboard with no filter")
filter = request.GET.get('filter', None)
query_result = Summary.objects.latest('created_at')
workflows = filter_by(filter)
orchestration = OrchestrationWorkflow.objects.latest('created_at')
context = {
"summary": query_result,
"completed_percent" : int((query_result.completed * 100)/query_result.clusters),
"in_progress_percent" : int((query_result.in_progress * 100)/query_result.clusters),
"failed_percent" : int((query_result.failed * 100)/query_result.clusters),
"workflow": serializers.serialize("json", workflows),
"orchestration": orchestration
}
return render(request, "dashboard.html", context)
def deployment(request):
# Look up playbook status by distinch cluster names
query_result = AutomationStatus.objects.all().distinct('cluster_name').order_by('cluster_name', '-created_at')
clusters = serializers.serialize("json", query_result)
# Get full list of clusters
# caasqueryservice = CaaSQueryService()
context = {
"clusters": clusters
}
return render(request, "deployment.html", context)
def hardware(request):
# Get firmware versions
caasqueryservice = CaaSQueryService()
context = {
"firmware_versions": caasqueryservice.get_firmware_version()
}
return render(request, "hardware.html", context)
def by_playbook_name(request, playbook_name):
query_result = AutomationStatus.objects.filter(playbook_name=playbook_name).order_by('-created_at')
context = {
"playbook_name": playbook_name,
"query_result": serializers.serialize("json", query_result)
}
return render(request, "by_playbook_name.html", context)
def by_cluster_name(request, cluster_name):
query_result = AutomationStatus.objects.filter(cluster_name=cluster_name).order_by('-created_at')
context = {
"cluster_name": cluster_name,
"query_result": serializers.serialize("json", query_result)
}
return render(request, "by_cluster_name.html", context)
|