Statistics
| Branch: | Tag: | Revision:

root / ui / views.py @ 88443f66

History | View | Annotate | Download (4.5 kB)

1 a5bc3755 Vangelis Koukis
# Copyright 2011 GRNET S.A. All rights reserved.
2 8950a78f Christodoulos Psaltis
#
3 a5bc3755 Vangelis Koukis
# Redistribution and use in source and binary forms, with or
4 a5bc3755 Vangelis Koukis
# without modification, are permitted provided that the following
5 a5bc3755 Vangelis Koukis
# conditions are met:
6 8950a78f Christodoulos Psaltis
#
7 a5bc3755 Vangelis Koukis
#   1. Redistributions of source code must retain the above
8 a5bc3755 Vangelis Koukis
#      copyright notice, this list of conditions and the following
9 a5bc3755 Vangelis Koukis
#      disclaimer.
10 8950a78f Christodoulos Psaltis
#
11 a5bc3755 Vangelis Koukis
#   2. Redistributions in binary form must reproduce the above
12 a5bc3755 Vangelis Koukis
#      copyright notice, this list of conditions and the following
13 a5bc3755 Vangelis Koukis
#      disclaimer in the documentation and/or other materials
14 a5bc3755 Vangelis Koukis
#      provided with the distribution.
15 8950a78f Christodoulos Psaltis
#
16 a5bc3755 Vangelis Koukis
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 a5bc3755 Vangelis Koukis
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 a5bc3755 Vangelis Koukis
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 a5bc3755 Vangelis Koukis
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 a5bc3755 Vangelis Koukis
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 a5bc3755 Vangelis Koukis
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 a5bc3755 Vangelis Koukis
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 a5bc3755 Vangelis Koukis
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 a5bc3755 Vangelis Koukis
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 a5bc3755 Vangelis Koukis
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 a5bc3755 Vangelis Koukis
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 a5bc3755 Vangelis Koukis
# POSSIBILITY OF SUCH DAMAGE.
28 8950a78f Christodoulos Psaltis
#
29 a5bc3755 Vangelis Koukis
# The views and conclusions contained in the software and
30 a5bc3755 Vangelis Koukis
# documentation are those of the authors and should not be
31 a5bc3755 Vangelis Koukis
# interpreted as representing official policies, either expressed
32 a5bc3755 Vangelis Koukis
# or implied, of GRNET S.A.
33 8950a78f Christodoulos Psaltis
#
34 edda4d30 Markos Gogoulos
import os
35 abf90954 Markos Gogoulos
from django.conf import settings
36 edda4d30 Markos Gogoulos
from django.utils.translation import gettext_lazy as _
37 b303ba05 Christodoulos Psaltis
from django.template import Context, loader
38 cc7c5902 Dimitris Moraitis
from django.http import HttpResponse
39 ec06b07c Dimitris Moraitis
from django.utils.translation import get_language
40 9c901aec Markos Gogoulos
from django.utils import simplejson as json
41 f533f224 Vangelis Koukis
from django.shortcuts import render_to_response
42 cc7c5902 Dimitris Moraitis
43 abf90954 Markos Gogoulos
TIMEOUT = settings.TIMEOUT
44 7b03c69d Dimitris Moraitis
UPDATE_INTERVAL = settings.UPDATE_INTERVAL
45 f533f224 Vangelis Koukis
IMAGE_ICONS = settings.IMAGE_ICONS
46 e646ebe5 Dimitris Moraitis
47 cc7c5902 Dimitris Moraitis
def template(name, context):
48 e646ebe5 Dimitris Moraitis
    template_path = os.path.join(os.path.dirname(__file__), "templates/")
49 b303ba05 Christodoulos Psaltis
    current_template = template_path + name + '.html'
50 b303ba05 Christodoulos Psaltis
    t = loader.get_template(current_template)
51 b303ba05 Christodoulos Psaltis
    return HttpResponse(t.render(Context(context)))
52 cc7c5902 Dimitris Moraitis
53 cc7c5902 Dimitris Moraitis
def home(request):
54 e646ebe5 Dimitris Moraitis
    context = {'timeout': TIMEOUT,
55 a226ff9f Christodoulos Psaltis
               'project': '+nefo',
56 e646ebe5 Dimitris Moraitis
               'request': request,
57 f533f224 Vangelis Koukis
               'current_lang': get_language() or 'en',
58 7b03c69d Dimitris Moraitis
               'update_interval': UPDATE_INTERVAL,
59 f533f224 Vangelis Koukis
               'image_icons': IMAGE_ICONS,}
60 cc7c5902 Dimitris Moraitis
    return template('home', context)
61 cc7c5902 Dimitris Moraitis
62 43df43aa Markos Gogoulos
def machines(request):
63 f533f224 Vangelis Koukis
    context = {'default_keywords': settings.DEFAULT_KEYWORDS}
64 43df43aa Markos Gogoulos
    return template('machines', context)
65 42f67a2a Dimitris Moraitis
66 f533f224 Vangelis Koukis
def machines_icon(request):
67 f533f224 Vangelis Koukis
    context = {'default_keywords': settings.DEFAULT_KEYWORDS}
68 f533f224 Vangelis Koukis
    return template('machines_icon', context)
69 f533f224 Vangelis Koukis
70 f533f224 Vangelis Koukis
def machines_list(request):
71 f533f224 Vangelis Koukis
    context = {'default_keywords': settings.DEFAULT_KEYWORDS}
72 f533f224 Vangelis Koukis
    return template('machines_list', context)
73 f533f224 Vangelis Koukis
74 f533f224 Vangelis Koukis
def machines_single(request):
75 f533f224 Vangelis Koukis
    context = {'default_keywords': settings.DEFAULT_KEYWORDS}
76 f533f224 Vangelis Koukis
    return template('machines_single', context)
77 f533f224 Vangelis Koukis
78 f533f224 Vangelis Koukis
def machines_console(request):
79 473d37cc Markos Gogoulos
    host, port, password = ('','','')
80 6912c72b Markos Gogoulos
    host = request.GET.get('host','')
81 6912c72b Markos Gogoulos
    port = request.GET.get('port','')
82 6912c72b Markos Gogoulos
    password = request.GET.get('password','')
83 f533f224 Vangelis Koukis
    machine = request.GET.get('machine','')
84 f533f224 Vangelis Koukis
    host_ip = request.GET.get('host_ip','')
85 f533f224 Vangelis Koukis
    context = {'host': host, 'port': port, 'password': password, 'machine': machine, 'host_ip': host_ip}
86 f533f224 Vangelis Koukis
    return template('machines_console', context)
87 e646ebe5 Dimitris Moraitis
88 fd70c1db Markos Gogoulos
def machines_connect(request):
89 fd70c1db Markos Gogoulos
    ip_address = request.GET.get('ip_address','')
90 afedad4d Markos Gogoulos
    operating_system = request.GET.get('os','')
91 afedad4d Markos Gogoulos
    if operating_system == 'windows': #check if we are on windows
92 fd70c1db Markos Gogoulos
        rdp_file = os.path.join(os.path.dirname(__file__), "static/") + 'synnefo-windows.rdp'
93 fd70c1db Markos Gogoulos
        connect_data = open(rdp_file, 'r').read()
94 fd70c1db Markos Gogoulos
        connect_data = connect_data + 'full address:s:' + ip_address + '\n'
95 fd70c1db Markos Gogoulos
        response = HttpResponse(connect_data, mimetype='application/x-rdp')
96 fd70c1db Markos Gogoulos
        response['Content-Disposition'] = 'attachment; filename=synnefo-windows.rdp'
97 fd70c1db Markos Gogoulos
    else:
98 afedad4d Markos Gogoulos
        response = HttpResponse("Try ssh maybe")  #no windows, no rdp
99 fd70c1db Markos Gogoulos
    return response
100 fd70c1db Markos Gogoulos
101 fd70c1db Markos Gogoulos
102 e646ebe5 Dimitris Moraitis
def images(request):
103 ec06b07c Dimitris Moraitis
    context = {}
104 cc7c5902 Dimitris Moraitis
    return template('images', context)
105 cc7c5902 Dimitris Moraitis
106 cc7c5902 Dimitris Moraitis
def disks(request):
107 ec06b07c Dimitris Moraitis
    context = {}
108 cc7c5902 Dimitris Moraitis
    return template('disks', context)
109 cc7c5902 Dimitris Moraitis
110 cc7c5902 Dimitris Moraitis
def networks(request):
111 ec06b07c Dimitris Moraitis
    context = {}
112 cc7c5902 Dimitris Moraitis
    return template('networks', context)
113 0dedf601 Christodoulos Psaltis
114 f533f224 Vangelis Koukis
def files(request):
115 0dedf601 Christodoulos Psaltis
    context = {}
116 0dedf601 Christodoulos Psaltis
    return template('files', context)
117 0dedf601 Christodoulos Psaltis
118 0dedf601 Christodoulos Psaltis
def desktops(request):
119 0dedf601 Christodoulos Psaltis
    context = {}
120 0dedf601 Christodoulos Psaltis
    return template('desktops', context)
121 0dedf601 Christodoulos Psaltis
122 0dedf601 Christodoulos Psaltis
def apps(request):
123 0dedf601 Christodoulos Psaltis
    context = {}
124 0dedf601 Christodoulos Psaltis
    return template('apps', context)