views.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import csv
  2. from django.template import RequestContext
  3. from django.http import HttpResponseRedirect, HttpResponse
  4. from django.shortcuts import render
  5. from django.core.urlresolvers import reverse
  6. from .testmodels import *
  7. from datetime import datetime
  8. import logging
  9. logger = logging.getLogger(__name__)
  10. # loadtest views
  11. def index(request):
  12. tests = TestRun.objects().order_by('-created')
  13. return render(request, 'loadtests/index.html', {'tests': tests })
  14. def testsetup(request, volumeId, testName):
  15. test = TestRun()
  16. test.name = testName
  17. test.volumeId = volumeId
  18. test.created = datetime.now()
  19. test = test.save()
  20. response = HttpResponse('{ "testId": ' + str(test.id) + ' }', content_type='json')
  21. return response
  22. def deletetest(request, id):
  23. try:
  24. test = TestRun.objects(id=id).first()
  25. except (IndexError, ValidationError) as e:
  26. return handleException(request, id, e)
  27. test.delete()
  28. return HttpResponseRedirect(reverse('loadtests:home'))
  29. def createcsv(request, id):
  30. test = TestRun.objects(id=id).first()
  31. # Create the HttpResponse object with the appropriate CSV header.
  32. response = HttpResponse(content_type='text/csv')
  33. filename = '%s_%s.csv' % (test.name, test.volumeId)
  34. response['Content-Disposition'] = 'attachment; filename="%s"' % (filename)
  35. writer = csv.writer(response)
  36. for result in test.results:
  37. writer.writerow([result.durationInSec])
  38. return response