Revision f019f93d snf-cyclades-app/synnefo/ui/views.py

b/snf-cyclades-app/synnefo/ui/views.py
34 34

  
35 35
import os
36 36

  
37
from urlparse import urlparse
38

  
39 37
from django.conf import settings
40 38
from django.utils.translation import gettext_lazy as _
41 39
from django.template import loader
......
45 43
from synnefo_branding.utils import render_to_string
46 44
from django.core.urlresolvers import reverse
47 45
from django.template import RequestContext
48
from synnefo_branding import settings as snf_settings
49 46

  
50 47
from synnefo.util.version import get_component_version
51
from synnefo.lib import join_urls
52 48

  
53
from synnefo import cyclades_settings
54 49
from synnefo.ui import settings as uisettings
55 50

  
56 51
SYNNEFO_JS_LIB_VERSION = get_component_version('app')
......
101 96
# Additional settings
102 97
VM_NAME_TEMPLATE = getattr(settings, "VM_CREATE_NAME_TPL", "My {0} server")
103 98
VM_HOSTNAME_FORMAT = getattr(settings, "UI_VM_HOSTNAME_FORMAT",
104
                                    'snf-%(id)s.vm.synnefo.org')
99
                             'snf-%(id)s.vm.synnefo.org')
105 100

  
106 101
if isinstance(VM_HOSTNAME_FORMAT, basestring):
107 102
    VM_HOSTNAME_FORMAT = VM_HOSTNAME_FORMAT % {'id': '{0}'}
......
173 168
    current_template = template_path + name + '.html'
174 169
    t = loader.get_template(current_template)
175 170
    media_context = {
176
       'UI_MEDIA_URL': UI_MEDIA_URL,
177
       'SYNNEFO_JS_URL': UI_SYNNEFO_JS_URL,
178
       'SYNNEFO_JS_LIB_URL': UI_SYNNEFO_JS_LIB_URL,
179
       'SYNNEFO_JS_WEB_URL': UI_SYNNEFO_JS_WEB_URL,
180
       'SYNNEFO_IMAGES_URL': UI_SYNNEFO_IMAGES_URL,
181
       'SYNNEFO_CSS_URL': UI_SYNNEFO_CSS_URL,
182
       'SYNNEFO_JS_LIB_VERSION': SYNNEFO_JS_LIB_VERSION,
183
       'DEBUG': settings.DEBUG
171
        'UI_MEDIA_URL': UI_MEDIA_URL,
172
        'SYNNEFO_JS_URL': UI_SYNNEFO_JS_URL,
173
        'SYNNEFO_JS_LIB_URL': UI_SYNNEFO_JS_LIB_URL,
174
        'SYNNEFO_JS_WEB_URL': UI_SYNNEFO_JS_WEB_URL,
175
        'SYNNEFO_IMAGES_URL': UI_SYNNEFO_IMAGES_URL,
176
        'SYNNEFO_CSS_URL': UI_SYNNEFO_CSS_URL,
177
        'SYNNEFO_JS_LIB_VERSION': SYNNEFO_JS_LIB_VERSION,
178
        'DEBUG': settings.DEBUG
184 179
    }
185 180
    context.update(media_context)
186 181
    return HttpResponse(t.render(RequestContext(request, context)))
187 182

  
188 183

  
189 184
def home(request):
190
    context = {'timeout': TIMEOUT,
191
               'project': '+nefo',
192
               'request': request,
193
               'current_lang': get_language() or 'en',
194
               'compute_api_url': json.dumps(uisettings.COMPUTE_URL),
195
               'user_catalog_url': json.dumps(uisettings.USER_CATALOG_URL),
196
               'feedback_post_url': json.dumps(uisettings.FEEDBACK_URL),
197
               'accounts_api_url': json.dumps(uisettings.ACCOUNT_URL),
198
               'logout_redirect': json.dumps(uisettings.LOGOUT_REDIRECT),
199
               'login_redirect': json.dumps(uisettings.LOGIN_URL),
200
               'glance_api_url': json.dumps(uisettings.GLANCE_URL),
201
               'translate_uuids': json.dumps(True),
202
               # update interval settings
203
               'update_interval': UPDATE_INTERVAL,
204
               'update_interval_increase': UPDATE_INTERVAL_INCREASE,
205
               'update_interval_increase_after_calls':
206
                UPDATE_INTERVAL_INCREASE_AFTER_CALLS_COUNT,
207
               'update_interval_fast': UPDATE_INTERVAL_FAST,
208
               'update_interval_max': UPDATE_INTERVAL_MAX,
209
               'changes_since_alignment': CHANGES_SINCE_ALIGNMENT,
210
               'image_icons': IMAGE_ICONS,
211
               'auth_cookie_name': AUTH_COOKIE_NAME,
212
               'auth_skip_redirects': json.dumps(AUTH_SKIP_REDIRECTS),
213
               'suggested_flavors': json.dumps(SUGGESTED_FLAVORS),
214
               'suggested_roles': json.dumps(SUGGESTED_ROLES),
215
               'vm_image_common_metadata': json.dumps(VM_IMAGE_COMMON_METADATA),
216
               'synnefo_version': SYNNEFO_JS_LIB_VERSION,
217
               'delay_on_blur': json.dumps(DELAY_ON_BLUR),
218
               'update_hidden_views': json.dumps(UPDATE_HIDDEN_VIEWS),
219
               'handle_window_exceptions': json.dumps(HANDLE_WINDOW_EXCEPTIONS),
220
               'skip_timeouts': json.dumps(SKIP_TIMEOUTS),
221
               'vm_name_template': json.dumps(VM_NAME_TEMPLATE),
222
               'flavors_disk_templates_info':
223
               json.dumps(FLAVORS_DISK_TEMPLATES_INFO),
224
               'support_ssh_os_list': json.dumps(SUPPORT_SSH_OS_LIST),
225
               'unknown_os': json.dumps(UNKNOWN_OS),
226
               'os_created_users': json.dumps(OS_CREATED_USERS),
227
               'userdata_keys_limit': json.dumps(MAX_SSH_KEYS_PER_USER),
228
               'use_glance': json.dumps(ENABLE_GLANCE),
229
               'system_images_owners': json.dumps(SYSTEM_IMAGES_OWNERS),
230
               'custom_image_help_url': CUSTOM_IMAGE_HELP_URL,
231
               'image_deleted_title': json.dumps(IMAGE_DELETED_TITLE),
232
               'image_deleted_size_title': json.dumps(IMAGE_DELETED_SIZE_TITLE),
233
               'network_suggested_subnets': json.dumps(NETWORK_SUBNETS),
234
               'network_available_types': json.dumps(NETWORK_TYPES),
235
               'network_allow_duplicate_vm_nics':
236
               json.dumps(NETWORK_DUPLICATE_NICS),
237
               'network_strict_destroy': json.dumps(NETWORK_STRICT_DESTROY),
238
               'network_allow_multiple_destroy':
239
               json.dumps(NETWORK_ALLOW_MULTIPLE_DESTROY),
240
               'automatic_network_range_format':
241
               json.dumps(AUTOMATIC_NETWORK_RANGE_FORMAT),
242
               'grouped_public_network_name':
243
               json.dumps(GROUPED_PUBLIC_NETWORK_NAME),
244
               'group_public_networks': json.dumps(GROUP_PUBLIC_NETWORKS),
245
               'private_networks_nic_hotplug':
246
                   json.dumps(PRIVATE_NETWORKS_NIC_HOTPLUG),
247
               'diagnostics_update_interval':
248
               json.dumps(DIAGNOSTICS_UPDATE_INTERVAL),
249
               'vm_hostname_format': json.dumps(VM_HOSTNAME_FORMAT)
250
               }
185
    context = {
186
        'timeout': TIMEOUT,
187
        'project': '+nefo',
188
        'request': request,
189
        'current_lang': get_language() or 'en',
190
        'compute_api_url': json.dumps(uisettings.COMPUTE_URL),
191
        'user_catalog_url': json.dumps(uisettings.USER_CATALOG_URL),
192
        'feedback_post_url': json.dumps(uisettings.FEEDBACK_URL),
193
        'accounts_api_url': json.dumps(uisettings.ACCOUNT_URL),
194
        'logout_redirect': json.dumps(uisettings.LOGOUT_REDIRECT),
195
        'login_redirect': json.dumps(uisettings.LOGIN_URL),
196
        'glance_api_url': json.dumps(uisettings.GLANCE_URL),
197
        'translate_uuids': json.dumps(True),
198
        # update interval settings
199
        'update_interval': UPDATE_INTERVAL,
200
        'update_interval_increase': UPDATE_INTERVAL_INCREASE,
201
        'update_interval_increase_after_calls':
202
        UPDATE_INTERVAL_INCREASE_AFTER_CALLS_COUNT,
203
        'update_interval_fast': UPDATE_INTERVAL_FAST,
204
        'update_interval_max': UPDATE_INTERVAL_MAX,
205
        'changes_since_alignment': CHANGES_SINCE_ALIGNMENT,
206
        'image_icons': IMAGE_ICONS,
207
        'auth_cookie_name': AUTH_COOKIE_NAME,
208
        'auth_skip_redirects': json.dumps(AUTH_SKIP_REDIRECTS),
209
        'suggested_flavors': json.dumps(SUGGESTED_FLAVORS),
210
        'suggested_roles': json.dumps(SUGGESTED_ROLES),
211
        'vm_image_common_metadata': json.dumps(VM_IMAGE_COMMON_METADATA),
212
        'synnefo_version': SYNNEFO_JS_LIB_VERSION,
213
        'delay_on_blur': json.dumps(DELAY_ON_BLUR),
214
        'update_hidden_views': json.dumps(UPDATE_HIDDEN_VIEWS),
215
        'handle_window_exceptions': json.dumps(HANDLE_WINDOW_EXCEPTIONS),
216
        'skip_timeouts': json.dumps(SKIP_TIMEOUTS),
217
        'vm_name_template': json.dumps(VM_NAME_TEMPLATE),
218
        'flavors_disk_templates_info': json.dumps(FLAVORS_DISK_TEMPLATES_INFO),
219
        'support_ssh_os_list': json.dumps(SUPPORT_SSH_OS_LIST),
220
        'unknown_os': json.dumps(UNKNOWN_OS),
221
        'os_created_users': json.dumps(OS_CREATED_USERS),
222
        'userdata_keys_limit': json.dumps(MAX_SSH_KEYS_PER_USER),
223
        'use_glance': json.dumps(ENABLE_GLANCE),
224
        'system_images_owners': json.dumps(SYSTEM_IMAGES_OWNERS),
225
        'custom_image_help_url': CUSTOM_IMAGE_HELP_URL,
226
        'image_deleted_title': json.dumps(IMAGE_DELETED_TITLE),
227
        'image_deleted_size_title': json.dumps(IMAGE_DELETED_SIZE_TITLE),
228
        'network_suggested_subnets': json.dumps(NETWORK_SUBNETS),
229
        'network_available_types': json.dumps(NETWORK_TYPES),
230
        'network_allow_duplicate_vm_nics': json.dumps(NETWORK_DUPLICATE_NICS),
231
        'network_strict_destroy': json.dumps(NETWORK_STRICT_DESTROY),
232
        'network_allow_multiple_destroy':
233
        json.dumps(NETWORK_ALLOW_MULTIPLE_DESTROY),
234
        'automatic_network_range_format':
235
        json.dumps(AUTOMATIC_NETWORK_RANGE_FORMAT),
236
        'grouped_public_network_name': json.dumps(GROUPED_PUBLIC_NETWORK_NAME),
237
        'group_public_networks': json.dumps(GROUP_PUBLIC_NETWORKS),
238
        'private_networks_nic_hotplug':
239
        json.dumps(PRIVATE_NETWORKS_NIC_HOTPLUG),
240
        'diagnostics_update_interval': json.dumps(DIAGNOSTICS_UPDATE_INTERVAL),
241
        'vm_hostname_format': json.dumps(VM_HOSTNAME_FORMAT)
242
    }
251 243
    return template('home', request, context)
252 244

  
245

  
253 246
def machines_console(request):
254 247
    host, port, password = ('', '', '')
255 248
    host = request.GET.get('host', '')
......
259 252
    host_ip = request.GET.get('host_ip', '')
260 253
    host_ip_v6 = request.GET.get('host_ip_v6', '')
261 254
    context = {'host': host, 'port': port, 'password': password,
262
               'machine': machine, 'host_ip': host_ip, 'host_ip_v6': host_ip_v6}
255
               'machine': machine, 'host_ip': host_ip,
256
               'host_ip_v6': host_ip_v6}
263 257
    return template('machines_console', request, context)
264 258

  
265 259

  
......
278 272
<a target="_blank"
279 273
href="http://en.wikipedia.org/wiki/Remote_Desktop_Services">
280 274
Remote Desktop Service</a>.
281
To do so, open the following file with an appropriate remote desktop client.""")
275
To do so, open the following file with an appropriate \
276
remote desktop client.""")
282 277
CONNECT_LINUX_WINDOWS_SUBMESSAGE = \
283 278
    _("""If you don't have a Remote Desktop client already installed,
284 279
we suggest the use of <a target="_blank"
......
389 384
                        'ip_address': ip_address,
390 385
                        'hostname': hostname,
391 386
                        'user': username
392
                      }
387
                    }
393 388

  
394 389
        rdp_context = {
395 390
            'username': username,
......
454 449
                         mimetype='application/json')  # no windows, no rdp
455 450

  
456 451
    return response
457

  

Also available in: Unified diff