root / snf-cyclades-app / synnefo / app_settings / default / ui.py @ 02f0cf8a
History | View | Annotate | Download (6.6 kB)
1 | 1277fb19 | Vangelis Koukis | # -*- coding: utf-8 -*-
|
---|---|---|---|
2 | 1277fb19 | Vangelis Koukis | #
|
3 | 1277fb19 | Vangelis Koukis | # UI settings
|
4 | 1277fb19 | Vangelis Koukis | ###################
|
5 | 1277fb19 | Vangelis Koukis | |
6 | 30b6f316 | Kostas Papadimitriou | # API URL
|
7 | 30b6f316 | Kostas Papadimitriou | COMPUTE_API_URL = '/api/v1.1'
|
8 | 30b6f316 | Kostas Papadimitriou | |
9 | 7970aa87 | Kostas Papadimitriou | # base url for ui static files
|
10 | 04a38bd0 | Kostas Papadimitriou | # if not set, defaults to MEDIA_URL + 'snf-<latest_ui_version>/'
|
11 | 6f284708 | Kostas Papadimitriou | UI_MEDIA_URL = '/static/ui/static/snf/'
|
12 | 7970aa87 | Kostas Papadimitriou | |
13 | 1277fb19 | Vangelis Koukis | # UI requests to the API layer time out after that many milliseconds
|
14 | 1277fb19 | Vangelis Koukis | TIMEOUT = 10 * 1000 |
15 | 1277fb19 | Vangelis Koukis | |
16 | 1277fb19 | Vangelis Koukis | # A list of suggested server tags (server metadata keys)
|
17 | 1277fb19 | Vangelis Koukis | DEFAULT_KEYWORDS = ["OS", "Role", "Location", "Owner"] |
18 | 1277fb19 | Vangelis Koukis | |
19 | 1277fb19 | Vangelis Koukis | # A list of allowed icons for OS Images
|
20 | 1277fb19 | Vangelis Koukis | IMAGE_ICONS = ["redhat", "ubuntu", "debian", "windows", "gentoo", "archlinux", |
21 | 1277fb19 | Vangelis Koukis | "centos", "fedora", "freebsd", "netbsd", "openbsd", "slackware", |
22 | 6ee2466c | Kostas Papadimitriou | "suse", "kubuntu"] |
23 | 6fb884b2 | Christodoulos Psaltis | |
24 | 6fb884b2 | Christodoulos Psaltis | # How often should the UI request changes from the API
|
25 | 1cc6e94f | Kostas Papadimitriou | UI_UPDATE_INTERVAL = 5000
|
26 | 1cc6e94f | Kostas Papadimitriou | |
27 | 1cc6e94f | Kostas Papadimitriou | # Milieconds to increase the interval after UI_UPDATE_INTERVAL_INCREASE_AFTER_CALLS_COUNT calls
|
28 | 1cc6e94f | Kostas Papadimitriou | # of recurrent api requests
|
29 | 1cc6e94f | Kostas Papadimitriou | UI_UPDATE_INTERVAL_INCREASE = UI_UPDATE_INTERVAL / 4
|
30 | 1cc6e94f | Kostas Papadimitriou | UI_UPDATE_INTERVAL_INCREASE_AFTER_CALLS_COUNT = 4
|
31 | 1cc6e94f | Kostas Papadimitriou | |
32 | 1cc6e94f | Kostas Papadimitriou | # Maximum update interval
|
33 | 1cc6e94f | Kostas Papadimitriou | UI_UPDATE_INTERVAL_MAX = UI_UPDATE_INTERVAL * 3
|
34 | 1cc6e94f | Kostas Papadimitriou | |
35 | 1cc6e94f | Kostas Papadimitriou | # Fast update interval
|
36 | 1cc6e94f | Kostas Papadimitriou | UI_UPDATE_INTERVAL_FAST = UI_UPDATE_INTERVAL / 2
|
37 | faf5ddde | Kostas Papadimitriou | |
38 | 6de7fde5 | Kostas Papadimitriou | # Miliseconds to remove from the previous server response time used in
|
39 | 6de7fde5 | Kostas Papadimitriou | # consecutive API calls (aligning changes-since attribute).
|
40 | 6de7fde5 | Kostas Papadimitriou | UI_CHANGES_SINCE_ALIGNMENT = 0
|
41 | 6de7fde5 | Kostas Papadimitriou | |
42 | 515b3e04 | Kostas Papadimitriou | # How often to check for user usage changes
|
43 | 515b3e04 | Kostas Papadimitriou | UI_QUOTAS_UPDATE_INTERVAL = 10000
|
44 | 515b3e04 | Kostas Papadimitriou | |
45 | faf5ddde | Kostas Papadimitriou | # List of emails used for sending the feedback messages to (following the ADMINS format)
|
46 | faf5ddde | Kostas Papadimitriou | FEEDBACK_CONTACTS = ( |
47 | faf5ddde | Kostas Papadimitriou | # ('Contact Name', 'contact_email@domain.com'),
|
48 | faf5ddde | Kostas Papadimitriou | ) |
49 | faf5ddde | Kostas Papadimitriou | |
50 | faf5ddde | Kostas Papadimitriou | # Email from which the feedback emails will be sent from
|
51 | 25a7762e | Vangelis Koukis | FEEDBACK_EMAIL_FROM = "~okeanos <no-reply@grnet.gr>"
|
52 | dacd179a | Kostas Papadimitriou | |
53 | 85f1cd1e | Kostas Papadimitriou | # URL to redirect not authenticated users
|
54 | 85f1cd1e | Kostas Papadimitriou | UI_LOGIN_URL = "/im/login"
|
55 | 85f1cd1e | Kostas Papadimitriou | |
56 | 85f1cd1e | Kostas Papadimitriou | # URL to redirect user to when he logs out from the ui
|
57 | 85f1cd1e | Kostas Papadimitriou | UI_LOGOUT_URL = "/im/logout"
|
58 | e0dea91a | Kostas Papadimitriou | |
59 | 4be78dec | Kostas Papadimitriou | # Cookie name to retrieve authentication data from
|
60 | 4be78dec | Kostas Papadimitriou | UI_AUTH_COOKIE_NAME = '_pithos2_a'
|
61 | 4be78dec | Kostas Papadimitriou | |
62 | 04a38bd0 | Kostas Papadimitriou | # Flavor options that we provide to the user as predefined
|
63 | 66be390b | Kostas Papadimitriou | # cpu/ram/disk combinations on vm create wizard
|
64 | 66be390b | Kostas Papadimitriou | VM_CREATE_SUGGESTED_FLAVORS = { |
65 | e0dea91a | Kostas Papadimitriou | 'small': {
|
66 | e0dea91a | Kostas Papadimitriou | 'cpu': 1, |
67 | e0dea91a | Kostas Papadimitriou | 'ram': 1024, |
68 | d965e6dc | Kostas Papadimitriou | 'disk': 20, |
69 | d965e6dc | Kostas Papadimitriou | 'disk_template': 'drbd' |
70 | e0dea91a | Kostas Papadimitriou | }, |
71 | e0dea91a | Kostas Papadimitriou | 'medium': {
|
72 | e0dea91a | Kostas Papadimitriou | 'cpu': 2, |
73 | e0dea91a | Kostas Papadimitriou | 'ram': 2048, |
74 | d965e6dc | Kostas Papadimitriou | 'disk': 30, |
75 | d965e6dc | Kostas Papadimitriou | 'disk_template': 'drbd' |
76 | d965e6dc | Kostas Papadimitriou | |
77 | e0dea91a | Kostas Papadimitriou | }, |
78 | e0dea91a | Kostas Papadimitriou | 'large': {
|
79 | e0dea91a | Kostas Papadimitriou | 'cpu': 4, |
80 | e0dea91a | Kostas Papadimitriou | 'ram': 4096, |
81 | d965e6dc | Kostas Papadimitriou | 'disk': 40, |
82 | d965e6dc | Kostas Papadimitriou | 'disk_template': 'drbd' |
83 | d965e6dc | Kostas Papadimitriou | |
84 | e0dea91a | Kostas Papadimitriou | } |
85 | e0dea91a | Kostas Papadimitriou | } |
86 | bcd451ea | Kostas Papadimitriou | |
87 | bcd451ea | Kostas Papadimitriou | # A list of metadata keys to clone from image
|
88 | bcd451ea | Kostas Papadimitriou | # to the virtual machine on its creation.
|
89 | ebf4619d | Kostas Papadimitriou | VM_IMAGE_COMMON_METADATA = ["OS", "loginname", "logindomain", "users", "remote"] |
90 | 66be390b | Kostas Papadimitriou | |
91 | 66be390b | Kostas Papadimitriou | # A list of suggested vm roles to display to user on create wizard
|
92 | 66be390b | Kostas Papadimitriou | VM_CREATE_SUGGESTED_ROLES = ["Database server", "File server", "Mail server", "Web server", "Proxy"] |
93 | 66be390b | Kostas Papadimitriou | |
94 | c130b56e | Kostas Papadimitriou | # Template to be used for suggesting the user a default name for newly created
|
95 | 1a97a220 | Kostas Papadimitriou | # vms. {0} gets replaced by the image OS value
|
96 | c130b56e | Kostas Papadimitriou | VM_CREATE_NAME_TPL = "My {0} server"
|
97 | c130b56e | Kostas Papadimitriou | |
98 | 3796f345 | Kostas Papadimitriou | # Template to use to build vm hostname
|
99 | 3796f345 | Kostas Papadimitriou | UI_VM_HOSTNAME_FORMAT = 'snf-%(id)s.vm.okeanos.grnet.gr'
|
100 | 3796f345 | Kostas Papadimitriou | |
101 | 51bffc84 | Kostas Papadimitriou | # Name/description metadata for the available flavor disk templates
|
102 | 51bffc84 | Kostas Papadimitriou | # Dict key is the disk_template value as stored in database
|
103 | d965e6dc | Kostas Papadimitriou | UI_FLAVORS_DISK_TEMPLATES_INFO = { |
104 | d965e6dc | Kostas Papadimitriou | 'drbd': {'name': 'DRBD', |
105 | d965e6dc | Kostas Papadimitriou | 'description': 'DRBD storage.'}, |
106 | d965e6dc | Kostas Papadimitriou | } |
107 | d965e6dc | Kostas Papadimitriou | |
108 | 3796f345 | Kostas Papadimitriou | # Override default connect prompt messages. The setting gets appended to the
|
109 | 3796f345 | Kostas Papadimitriou | # ui default values so you only need to modify parameters you need to alter.
|
110 | 3796f345 | Kostas Papadimitriou | #
|
111 | 3796f345 | Kostas Papadimitriou | # Indicative format:
|
112 | 3796f345 | Kostas Papadimitriou | # {
|
113 | 3796f345 | Kostas Papadimitriou | # '<browser os1>': {
|
114 | 3796f345 | Kostas Papadimitriou | # '<vm os family1>': ['top message....', 'bottom message'],
|
115 | 3796f345 | Kostas Papadimitriou | # '<vm os family 2>': ['top message....', 'bottom message'],
|
116 | 3796f345 | Kostas Papadimitriou | # 'ssh_message': 'ssh %(user)s@%(hostname)s'
|
117 | 3796f345 | Kostas Papadimitriou | # }
|
118 | 3796f345 | Kostas Papadimitriou | #
|
119 | 3796f345 | Kostas Papadimitriou | # you may use the following parameters to format ssh_message:
|
120 | 3796f345 | Kostas Papadimitriou | #
|
121 | 3796f345 | Kostas Papadimitriou | # * server_id: the database pk of the vm
|
122 | 3796f345 | Kostas Papadimitriou | # * ip_address: the ipv4 address of the public vm nic
|
123 | 3796f345 | Kostas Papadimitriou | # * hostname: vm hostname
|
124 | 3796f345 | Kostas Papadimitriou | # * user: vm username
|
125 | 3796f345 | Kostas Papadimitriou | #
|
126 | 3796f345 | Kostas Papadimitriou | # you may assign a callable python object to the ssh_message, if so the above
|
127 | 3796f345 | Kostas Papadimitriou | # parameters get passed as arguments to the provided object.
|
128 | 3796f345 | Kostas Papadimitriou | UI_CONNECT_PROMPT_MESSAGES = {} |
129 | 3796f345 | Kostas Papadimitriou | |
130 | 3796f345 | Kostas Papadimitriou | # extend rdp file content. May be a string with format parameters similar to
|
131 | 3796f345 | Kostas Papadimitriou | # those used in UI_CONNECT_PROMPT_MESSAGES `ssh_message` or a callable object.
|
132 | 3796f345 | Kostas Papadimitriou | UI_EXTRA_RDP_CONTENT = None
|
133 | 3796f345 | Kostas Papadimitriou | |
134 | 1faf0b9c | Kostas Papadimitriou | |
135 | 66be390b | Kostas Papadimitriou | #######################
|
136 | 66be390b | Kostas Papadimitriou | # UI BEHAVIOUR SETTINGS
|
137 | 66be390b | Kostas Papadimitriou | #######################
|
138 | 66be390b | Kostas Papadimitriou | |
139 | 66be390b | Kostas Papadimitriou | # Whether to increase the time of recurrent requests (networks/vms update) if
|
140 | 04a38bd0 | Kostas Papadimitriou | # window loses its focus
|
141 | 66be390b | Kostas Papadimitriou | UI_DELAY_ON_BLUR = False
|
142 | 66be390b | Kostas Papadimitriou | |
143 | 04a38bd0 | Kostas Papadimitriou | # Whether not visible vm views will update their content if vm changes
|
144 | 66be390b | Kostas Papadimitriou | UI_UPDATE_HIDDEN_VIEWS = False
|
145 | 66be390b | Kostas Papadimitriou | |
146 | 66be390b | Kostas Papadimitriou | # After how many timeouts of reccurent ajax requests to display the timeout
|
147 | 66be390b | Kostas Papadimitriou | # error overlay
|
148 | 66be390b | Kostas Papadimitriou | UI_SKIP_TIMEOUTS = 1
|
149 | 66be390b | Kostas Papadimitriou | |
150 | 66be390b | Kostas Papadimitriou | # Whether UI should display error overlay for all Javascript exceptions
|
151 | 66be390b | Kostas Papadimitriou | UI_HANDLE_WINDOW_EXCEPTIONS = True
|
152 | 66be390b | Kostas Papadimitriou | |
153 | 5db5b149 | Kostas Papadimitriou | # A list of os names that support ssh public key assignment
|
154 | 126a01f2 | Kostas Papadimitriou | UI_SUPPORT_SSH_OS_LIST = ['debian', 'fedora', 'okeanos', 'ubuntu', 'kubuntu', |
155 | 126a01f2 | Kostas Papadimitriou | 'centos', 'archlinux'] |
156 | 5db5b149 | Kostas Papadimitriou | |
157 | 5db5b149 | Kostas Papadimitriou | # OS/username map to identify default user name for the specified os
|
158 | 5db5b149 | Kostas Papadimitriou | UI_OS_DEFAULT_USER_MAP = { |
159 | 04a38bd0 | Kostas Papadimitriou | 'debian':'root', 'fedora': 'root', 'okeanos': 'root', |
160 | 04a38bd0 | Kostas Papadimitriou | 'ubuntu': 'root', 'kubuntu': 'root', 'centos': 'root', |
161 | 5db5b149 | Kostas Papadimitriou | 'windows': 'Administrator' |
162 | 5db5b149 | Kostas Papadimitriou | } |
163 | 30b6f316 | Kostas Papadimitriou | |
164 | 126a01f2 | Kostas Papadimitriou | ##########################
|
165 | 126a01f2 | Kostas Papadimitriou | # UI NETWORK VIEW SETTINGS
|
166 | 126a01f2 | Kostas Papadimitriou | ##########################
|
167 | 126a01f2 | Kostas Papadimitriou | |
168 | 126a01f2 | Kostas Papadimitriou | # Available network types for use to choose when creating a private network
|
169 | 126a01f2 | Kostas Papadimitriou | # If only one set, no select options will be displayed
|
170 | b7d38981 | Dimitris Aragiorgis | UI_NETWORK_AVAILABLE_NETWORK_TYPES = {'MAC_FILTERED': 'mac-filtering'} |
171 | 126a01f2 | Kostas Papadimitriou | |
172 | 126a01f2 | Kostas Papadimitriou | # Suggested private networks to let the user choose from when creating a private
|
173 | 126a01f2 | Kostas Papadimitriou | # network with dhcp enabled
|
174 | 54e31bb3 | Christos Stavrakakis | UI_NETWORK_AVAILABLE_SUBNETS = ['10.0.0.0/24', '192.168.0.0/24'] |
175 | 126a01f2 | Kostas Papadimitriou | |
176 | 29cf98c9 | Kostas Papadimitriou | # UI will use this setting to find an available network subnet if user requests
|
177 | 29cf98c9 | Kostas Papadimitriou | # automatic subnet selection.
|
178 | 29cf98c9 | Kostas Papadimitriou | UI_AUTOMATIC_NETWORK_RANGE_FORMAT = "192.168.%d.0/24"
|
179 | 29cf98c9 | Kostas Papadimitriou | |
180 | 126a01f2 | Kostas Papadimitriou | # Whether to display already connected vm's to the network connect overlay
|
181 | 126a01f2 | Kostas Papadimitriou | UI_NETWORK_ALLOW_DUPLICATE_VM_NICS = False
|
182 | 126a01f2 | Kostas Papadimitriou | |
183 | 126a01f2 | Kostas Papadimitriou | # Whether to display destroy action on private networks that contain vms. If
|
184 | 126a01f2 | Kostas Papadimitriou | # set to True, destroy action will only get displayed if user disconnect all
|
185 | 126a01f2 | Kostas Papadimitriou | # virtual machines from the network.
|
186 | d89de077 | Kostas Papadimitriou | UI_NETWORK_STRICT_DESTROY = True
|
187 | 126a01f2 | Kostas Papadimitriou | |
188 | 3635e7ac | Kostas Papadimitriou | # Whether or not to group public networks nics in a single network view
|
189 | 3635e7ac | Kostas Papadimitriou | UI_GROUP_PUBLIC_NETWORKS = True
|
190 | 3635e7ac | Kostas Papadimitriou | |
191 | 3635e7ac | Kostas Papadimitriou | # The name of the grouped network view
|
192 | 40e5d2d2 | Kostas Papadimitriou | UI_GROUPED_PUBLIC_NETWORK_NAME = 'Internet'
|
193 | 3635e7ac | Kostas Papadimitriou | |
194 | 30b6f316 | Kostas Papadimitriou | |
195 | 30b6f316 | Kostas Papadimitriou | ###############
|
196 | 30b6f316 | Kostas Papadimitriou | # UI EXTENSIONS
|
197 | 30b6f316 | Kostas Papadimitriou | ###############
|
198 | 30b6f316 | Kostas Papadimitriou | |
199 | ae8cb3d5 | Kostas Papadimitriou | # Glance images API endpoint
|
200 | 30b6f316 | Kostas Papadimitriou | UI_GLANCE_API_URL = '/plankton'
|
201 | ae8cb3d5 | Kostas Papadimitriou | |
202 | ae8cb3d5 | Kostas Papadimitriou | # Whether or not UI should display images from the Glance API
|
203 | ae8cb3d5 | Kostas Papadimitriou | # set in UI_GLANCE_API_URL, if setting is set to False, ui will
|
204 | ae8cb3d5 | Kostas Papadimitriou | # request images from Compute API
|
205 | ae8cb3d5 | Kostas Papadimitriou | UI_ENABLE_GLANCE = True
|
206 | 1faf0b9c | Kostas Papadimitriou | |
207 | 1faf0b9c | Kostas Papadimitriou | # a dict of image owner ids and their associate name
|
208 | 1faf0b9c | Kostas Papadimitriou | # to be displayed on images list
|
209 | 1faf0b9c | Kostas Papadimitriou | UI_SYSTEM_IMAGES_OWNERS = { |
210 | 1faf0b9c | Kostas Papadimitriou | 'admin@synnefo.gr': 'system', |
211 | 1faf0b9c | Kostas Papadimitriou | 'images@synnefo.gr': 'system' |
212 | 1faf0b9c | Kostas Papadimitriou | } |