diff options
Diffstat (limited to 'meta-openstack')
5 files changed, 545 insertions, 2 deletions
diff --git a/meta-openstack/recipes-devtools/python/python-horizon/horizon.init b/meta-openstack/recipes-devtools/python/python-horizon/horizon.init index 994fbec..1c03b78 100644 --- a/meta-openstack/recipes-devtools/python/python-horizon/horizon.init +++ b/meta-openstack/recipes-devtools/python/python-horizon/horizon.init | |||
@@ -66,6 +66,10 @@ status() | |||
66 | echo "$DESC is not running" | 66 | echo "$DESC is not running" |
67 | } | 67 | } |
68 | 68 | ||
69 | if [ -e /etc/apache2/conf.d/openstack-dashboard-apache.conf ]; then | ||
70 | chown -R daemon /usr/share/openstack-dashboard/openstack_dashboard/static | ||
71 | fi | ||
72 | |||
69 | case "$1" in | 73 | case "$1" in |
70 | start) | 74 | start) |
71 | start | 75 | start |
diff --git a/meta-openstack/recipes-devtools/python/python-horizon/local_settings.py b/meta-openstack/recipes-devtools/python/python-horizon/local_settings.py new file mode 100644 index 0000000..8046b69 --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-horizon/local_settings.py | |||
@@ -0,0 +1,450 @@ | |||
1 | import os | ||
2 | |||
3 | from django.utils.translation import ugettext_lazy as _ | ||
4 | |||
5 | from openstack_dashboard import exceptions | ||
6 | |||
7 | DEBUG = True | ||
8 | TEMPLATE_DEBUG = DEBUG | ||
9 | |||
10 | # Required for Django 1.5. | ||
11 | # If horizon is running in production (DEBUG is False), set this | ||
12 | # with the list of host/domain names that the application can serve. | ||
13 | # For more information see: | ||
14 | # https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts | ||
15 | #ALLOWED_HOSTS = ['horizon.example.com', ] | ||
16 | |||
17 | # Set SSL proxy settings: | ||
18 | # For Django 1.4+ pass this header from the proxy after terminating the SSL, | ||
19 | # and don't forget to strip it from the client's request. | ||
20 | # For more information see: | ||
21 | # https://docs.djangoproject.com/en/1.4/ref/settings/#secure-proxy-ssl-header | ||
22 | # SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https') | ||
23 | |||
24 | # If Horizon is being served through SSL, then uncomment the following two | ||
25 | # settings to better secure the cookies from security exploits | ||
26 | #CSRF_COOKIE_SECURE = True | ||
27 | #SESSION_COOKIE_SECURE = True | ||
28 | |||
29 | # Overrides for OpenStack API versions. Use this setting to force the | ||
30 | # OpenStack dashboard to use a specfic API version for a given service API. | ||
31 | # NOTE: The version should be formatted as it appears in the URL for the | ||
32 | # service API. For example, The identity service APIs have inconsistent | ||
33 | # use of the decimal point, so valid options would be "2.0" or "3". | ||
34 | # OPENSTACK_API_VERSIONS = { | ||
35 | # "identity": 3 | ||
36 | # } | ||
37 | |||
38 | # Set this to True if running on multi-domain model. When this is enabled, it | ||
39 | # will require user to enter the Domain name in addition to username for login. | ||
40 | # OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False | ||
41 | |||
42 | # Overrides the default domain used when running on single-domain model | ||
43 | # with Keystone V3. All entities will be created in the default domain. | ||
44 | # OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default' | ||
45 | |||
46 | # Set Console type: | ||
47 | # valid options would be "AUTO", "VNC" or "SPICE" | ||
48 | # CONSOLE_TYPE = "AUTO" | ||
49 | |||
50 | # Default OpenStack Dashboard configuration. | ||
51 | HORIZON_CONFIG = { | ||
52 | 'dashboards': ('project', 'admin', 'settings',), | ||
53 | 'default_dashboard': 'project', | ||
54 | 'user_home': 'openstack_dashboard.views.get_user_home', | ||
55 | 'ajax_queue_limit': 10, | ||
56 | 'auto_fade_alerts': { | ||
57 | 'delay': 3000, | ||
58 | 'fade_duration': 1500, | ||
59 | 'types': ['alert-success', 'alert-info'] | ||
60 | }, | ||
61 | 'help_url': "http://docs.openstack.org", | ||
62 | 'exceptions': {'recoverable': exceptions.RECOVERABLE, | ||
63 | 'not_found': exceptions.NOT_FOUND, | ||
64 | 'unauthorized': exceptions.UNAUTHORIZED}, | ||
65 | } | ||
66 | |||
67 | # Specify a regular expression to validate user passwords. | ||
68 | # HORIZON_CONFIG["password_validator"] = { | ||
69 | # "regex": '.*', | ||
70 | # "help_text": _("Your password does not meet the requirements.") | ||
71 | # } | ||
72 | |||
73 | # Disable simplified floating IP address management for deployments with | ||
74 | # multiple floating IP pools or complex network requirements. | ||
75 | # HORIZON_CONFIG["simple_ip_management"] = False | ||
76 | |||
77 | # Turn off browser autocompletion for the login form if so desired. | ||
78 | # HORIZON_CONFIG["password_autocomplete"] = "off" | ||
79 | |||
80 | LOCAL_PATH = "/usr/share/openstack-dashboard/openstack_dashboard/static" | ||
81 | |||
82 | # Set custom secret key: | ||
83 | # You can either set it to a specific value or you can let horizion generate a | ||
84 | # default secret key that is unique on this machine, e.i. regardless of the | ||
85 | # amount of Python WSGI workers (if used behind Apache+mod_wsgi): However, there | ||
86 | # may be situations where you would want to set this explicitly, e.g. when | ||
87 | # multiple dashboard instances are distributed on different machines (usually | ||
88 | # behind a load-balancer). Either you have to make sure that a session gets all | ||
89 | # requests routed to the same dashboard instance or you set the same SECRET_KEY | ||
90 | # for all of them. | ||
91 | from horizon.utils import secret_key | ||
92 | SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, '.secret_key_store')) | ||
93 | |||
94 | # We recommend you use memcached for development; otherwise after every reload | ||
95 | # of the django development server, you will have to login again. To use | ||
96 | # memcached set CACHES to something like | ||
97 | CACHES = { | ||
98 | 'default': { | ||
99 | 'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache', | ||
100 | 'LOCATION' : '127.0.0.1:11211', | ||
101 | } | ||
102 | } | ||
103 | |||
104 | #CACHES = { | ||
105 | # 'default': { | ||
106 | # 'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache' | ||
107 | # } | ||
108 | #} | ||
109 | |||
110 | # Send email to the console by default | ||
111 | EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' | ||
112 | # Or send them to /dev/null | ||
113 | #EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend' | ||
114 | |||
115 | # Configure these for your outgoing email host | ||
116 | # EMAIL_HOST = 'smtp.my-company.com' | ||
117 | # EMAIL_PORT = 25 | ||
118 | # EMAIL_HOST_USER = 'djangomail' | ||
119 | # EMAIL_HOST_PASSWORD = 'top-secret!' | ||
120 | |||
121 | # For multiple regions uncomment this configuration, and add (endpoint, title). | ||
122 | # AVAILABLE_REGIONS = [ | ||
123 | # ('http://cluster1.example.com:5000/v2.0', 'cluster1'), | ||
124 | # ('http://cluster2.example.com:5000/v2.0', 'cluster2'), | ||
125 | # ] | ||
126 | |||
127 | OPENSTACK_HOST = "127.0.0.1" | ||
128 | OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST | ||
129 | OPENSTACK_KEYSTONE_DEFAULT_ROLE = "Member" | ||
130 | |||
131 | # Disable SSL certificate checks (useful for self-signed certificates): | ||
132 | # OPENSTACK_SSL_NO_VERIFY = True | ||
133 | |||
134 | # The CA certificate to use to verify SSL connections | ||
135 | # OPENSTACK_SSL_CACERT = '/path/to/cacert.pem' | ||
136 | |||
137 | # The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the | ||
138 | # capabilities of the auth backend for Keystone. | ||
139 | # If Keystone has been configured to use LDAP as the auth backend then set | ||
140 | # can_edit_user to False and name to 'ldap'. | ||
141 | # | ||
142 | # TODO(tres): Remove these once Keystone has an API to identify auth backend. | ||
143 | OPENSTACK_KEYSTONE_BACKEND = { | ||
144 | 'name': 'native', | ||
145 | 'can_edit_user': True, | ||
146 | 'can_edit_group': True, | ||
147 | 'can_edit_project': True, | ||
148 | 'can_edit_domain': True, | ||
149 | 'can_edit_role': True | ||
150 | } | ||
151 | |||
152 | OPENSTACK_HYPERVISOR_FEATURES = { | ||
153 | 'can_set_mount_point': True, | ||
154 | } | ||
155 | |||
156 | # The OPENSTACK_NEUTRON_NETWORK settings can be used to enable optional | ||
157 | # services provided by neutron. Options currenly available are load | ||
158 | # balancer service, security groups, quotas, VPN service. | ||
159 | OPENSTACK_NEUTRON_NETWORK = { | ||
160 | 'enable_lb': False, | ||
161 | 'enable_firewall': False, | ||
162 | 'enable_quotas': True, | ||
163 | 'enable_vpn': False, | ||
164 | # The profile_support option is used to detect if an external router can be | ||
165 | # configured via the dashboard. When using specific plugins the | ||
166 | # profile_support can be turned on if needed. | ||
167 | 'profile_support': None, | ||
168 | #'profile_support': 'cisco', | ||
169 | } | ||
170 | |||
171 | # The OPENSTACK_IMAGE_BACKEND settings can be used to customize features | ||
172 | # in the OpenStack Dashboard related to the Image service, such as the list | ||
173 | # of supported image formats. | ||
174 | # OPENSTACK_IMAGE_BACKEND = { | ||
175 | # 'image_formats': [ | ||
176 | # ('', ''), | ||
177 | # ('aki', _('AKI - Amazon Kernel Image')), | ||
178 | # ('ami', _('AMI - Amazon Machine Image')), | ||
179 | # ('ari', _('ARI - Amazon Ramdisk Image')), | ||
180 | # ('iso', _('ISO - Optical Disk Image')), | ||
181 | # ('qcow2', _('QCOW2 - QEMU Emulator')), | ||
182 | # ('raw', _('Raw')), | ||
183 | # ('vdi', _('VDI')), | ||
184 | # ('vhd', _('VHD')), | ||
185 | # ('vmdk', _('VMDK')) | ||
186 | # ] | ||
187 | # } | ||
188 | |||
189 | # OPENSTACK_ENDPOINT_TYPE specifies the endpoint type to use for the endpoints | ||
190 | # in the Keystone service catalog. Use this setting when Horizon is running | ||
191 | # external to the OpenStack environment. The default is 'publicURL'. | ||
192 | #OPENSTACK_ENDPOINT_TYPE = "publicURL" | ||
193 | |||
194 | # SECONDARY_ENDPOINT_TYPE specifies the fallback endpoint type to use in the | ||
195 | # case that OPENSTACK_ENDPOINT_TYPE is not present in the endpoints | ||
196 | # in the Keystone service catalog. Use this setting when Horizon is running | ||
197 | # external to the OpenStack environment. The default is None. This | ||
198 | # value should differ from OPENSTACK_ENDPOINT_TYPE if used. | ||
199 | #SECONDARY_ENDPOINT_TYPE = "publicURL" | ||
200 | |||
201 | # The number of objects (Swift containers/objects or images) to display | ||
202 | # on a single page before providing a paging element (a "more" link) | ||
203 | # to paginate results. | ||
204 | API_RESULT_LIMIT = 1000 | ||
205 | API_RESULT_PAGE_SIZE = 20 | ||
206 | |||
207 | # The timezone of the server. This should correspond with the timezone | ||
208 | # of your entire OpenStack installation, and hopefully be in UTC. | ||
209 | TIME_ZONE = "UTC" | ||
210 | |||
211 | # When launching an instance, the menu of available flavors is | ||
212 | # sorted by RAM usage, ascending. Provide a callback method here | ||
213 | # (and/or a flag for reverse sort) for the sorted() method if you'd | ||
214 | # like a different behaviour. For more info, see | ||
215 | # http://docs.python.org/2/library/functions.html#sorted | ||
216 | # CREATE_INSTANCE_FLAVOR_SORT = { | ||
217 | # 'key': my_awesome_callback_method, | ||
218 | # 'reverse': False, | ||
219 | # } | ||
220 | |||
221 | # The Horizon Policy Enforcement engine uses these values to load per service | ||
222 | # policy rule files. The content of these files should match the files the | ||
223 | # OpenStack services are using to determine role based access control in the | ||
224 | # target installation. | ||
225 | |||
226 | # Path to directory containing policy.json files | ||
227 | #POLICY_FILES_PATH = os.path.join(ROOT_PATH, "conf") | ||
228 | # Map of local copy of service policy files | ||
229 | #POLICY_FILES = { | ||
230 | # 'identity': 'keystone_policy.json', | ||
231 | # 'compute': 'nova_policy.json' | ||
232 | #} | ||
233 | |||
234 | # Trove user and database extension support. By default support for | ||
235 | # creating users and databases on database instances is turned on. | ||
236 | # To disable these extensions set the permission here to something | ||
237 | # unusable such as ["!"]. | ||
238 | # TROVE_ADD_USER_PERMS = [] | ||
239 | # TROVE_ADD_DATABASE_PERMS = [] | ||
240 | |||
241 | LOGGING = { | ||
242 | 'version': 1, | ||
243 | # When set to True this will disable all logging except | ||
244 | # for loggers specified in this configuration dictionary. Note that | ||
245 | # if nothing is specified here and disable_existing_loggers is True, | ||
246 | # django.db.backends will still log unless it is disabled explicitly. | ||
247 | 'disable_existing_loggers': False, | ||
248 | 'handlers': { | ||
249 | 'null': { | ||
250 | 'level': 'DEBUG', | ||
251 | 'class': 'django.utils.log.NullHandler', | ||
252 | }, | ||
253 | 'console': { | ||
254 | # Set the level to "DEBUG" for verbose output logging. | ||
255 | 'level': 'INFO', | ||
256 | 'class': 'logging.StreamHandler', | ||
257 | }, | ||
258 | }, | ||
259 | 'loggers': { | ||
260 | # Logging from django.db.backends is VERY verbose, send to null | ||
261 | # by default. | ||
262 | 'django.db.backends': { | ||
263 | 'handlers': ['null'], | ||
264 | 'propagate': False, | ||
265 | }, | ||
266 | 'requests': { | ||
267 | 'handlers': ['null'], | ||
268 | 'propagate': False, | ||
269 | }, | ||
270 | 'horizon': { | ||
271 | 'handlers': ['console'], | ||
272 | 'level': 'DEBUG', | ||
273 | 'propagate': False, | ||
274 | }, | ||
275 | 'openstack_dashboard': { | ||
276 | 'handlers': ['console'], | ||
277 | 'level': 'DEBUG', | ||
278 | 'propagate': False, | ||
279 | }, | ||
280 | 'novaclient': { | ||
281 | 'handlers': ['console'], | ||
282 | 'level': 'DEBUG', | ||
283 | 'propagate': False, | ||
284 | }, | ||
285 | 'cinderclient': { | ||
286 | 'handlers': ['console'], | ||
287 | 'level': 'DEBUG', | ||
288 | 'propagate': False, | ||
289 | }, | ||
290 | 'keystoneclient': { | ||
291 | 'handlers': ['console'], | ||
292 | 'level': 'DEBUG', | ||
293 | 'propagate': False, | ||
294 | }, | ||
295 | 'glanceclient': { | ||
296 | 'handlers': ['console'], | ||
297 | 'level': 'DEBUG', | ||
298 | 'propagate': False, | ||
299 | }, | ||
300 | 'neutronclient': { | ||
301 | 'handlers': ['console'], | ||
302 | 'level': 'DEBUG', | ||
303 | 'propagate': False, | ||
304 | }, | ||
305 | 'heatclient': { | ||
306 | 'handlers': ['console'], | ||
307 | 'level': 'DEBUG', | ||
308 | 'propagate': False, | ||
309 | }, | ||
310 | 'ceilometerclient': { | ||
311 | 'handlers': ['console'], | ||
312 | 'level': 'DEBUG', | ||
313 | 'propagate': False, | ||
314 | }, | ||
315 | 'troveclient': { | ||
316 | 'handlers': ['console'], | ||
317 | 'level': 'DEBUG', | ||
318 | 'propagate': False, | ||
319 | }, | ||
320 | 'swiftclient': { | ||
321 | 'handlers': ['console'], | ||
322 | 'level': 'DEBUG', | ||
323 | 'propagate': False, | ||
324 | }, | ||
325 | 'openstack_auth': { | ||
326 | 'handlers': ['console'], | ||
327 | 'level': 'DEBUG', | ||
328 | 'propagate': False, | ||
329 | }, | ||
330 | 'nose.plugins.manager': { | ||
331 | 'handlers': ['console'], | ||
332 | 'level': 'DEBUG', | ||
333 | 'propagate': False, | ||
334 | }, | ||
335 | 'django': { | ||
336 | 'handlers': ['console'], | ||
337 | 'level': 'DEBUG', | ||
338 | 'propagate': False, | ||
339 | }, | ||
340 | 'iso8601': { | ||
341 | 'handlers': ['null'], | ||
342 | 'propagate': False, | ||
343 | }, | ||
344 | } | ||
345 | } | ||
346 | |||
347 | SECURITY_GROUP_RULES = { | ||
348 | 'all_tcp': { | ||
349 | 'name': 'ALL TCP', | ||
350 | 'ip_protocol': 'tcp', | ||
351 | 'from_port': '1', | ||
352 | 'to_port': '65535', | ||
353 | }, | ||
354 | 'all_udp': { | ||
355 | 'name': 'ALL UDP', | ||
356 | 'ip_protocol': 'udp', | ||
357 | 'from_port': '1', | ||
358 | 'to_port': '65535', | ||
359 | }, | ||
360 | 'all_icmp': { | ||
361 | 'name': 'ALL ICMP', | ||
362 | 'ip_protocol': 'icmp', | ||
363 | 'from_port': '-1', | ||
364 | 'to_port': '-1', | ||
365 | }, | ||
366 | 'ssh': { | ||
367 | 'name': 'SSH', | ||
368 | 'ip_protocol': 'tcp', | ||
369 | 'from_port': '22', | ||
370 | 'to_port': '22', | ||
371 | }, | ||
372 | 'smtp': { | ||
373 | 'name': 'SMTP', | ||
374 | 'ip_protocol': 'tcp', | ||
375 | 'from_port': '25', | ||
376 | 'to_port': '25', | ||
377 | }, | ||
378 | 'dns': { | ||
379 | 'name': 'DNS', | ||
380 | 'ip_protocol': 'tcp', | ||
381 | 'from_port': '53', | ||
382 | 'to_port': '53', | ||
383 | }, | ||
384 | 'http': { | ||
385 | 'name': 'HTTP', | ||
386 | 'ip_protocol': 'tcp', | ||
387 | 'from_port': '80', | ||
388 | 'to_port': '80', | ||
389 | }, | ||
390 | 'pop3': { | ||
391 | 'name': 'POP3', | ||
392 | 'ip_protocol': 'tcp', | ||
393 | 'from_port': '110', | ||
394 | 'to_port': '110', | ||
395 | }, | ||
396 | 'imap': { | ||
397 | 'name': 'IMAP', | ||
398 | 'ip_protocol': 'tcp', | ||
399 | 'from_port': '143', | ||
400 | 'to_port': '143', | ||
401 | }, | ||
402 | 'ldap': { | ||
403 | 'name': 'LDAP', | ||
404 | 'ip_protocol': 'tcp', | ||
405 | 'from_port': '389', | ||
406 | 'to_port': '389', | ||
407 | }, | ||
408 | 'https': { | ||
409 | 'name': 'HTTPS', | ||
410 | 'ip_protocol': 'tcp', | ||
411 | 'from_port': '443', | ||
412 | 'to_port': '443', | ||
413 | }, | ||
414 | 'smtps': { | ||
415 | 'name': 'SMTPS', | ||
416 | 'ip_protocol': 'tcp', | ||
417 | 'from_port': '465', | ||
418 | 'to_port': '465', | ||
419 | }, | ||
420 | 'imaps': { | ||
421 | 'name': 'IMAPS', | ||
422 | 'ip_protocol': 'tcp', | ||
423 | 'from_port': '993', | ||
424 | 'to_port': '993', | ||
425 | }, | ||
426 | 'pop3s': { | ||
427 | 'name': 'POP3S', | ||
428 | 'ip_protocol': 'tcp', | ||
429 | 'from_port': '995', | ||
430 | 'to_port': '995', | ||
431 | }, | ||
432 | 'ms_sql': { | ||
433 | 'name': 'MS SQL', | ||
434 | 'ip_protocol': 'tcp', | ||
435 | 'from_port': '1433', | ||
436 | 'to_port': '1433', | ||
437 | }, | ||
438 | 'mysql': { | ||
439 | 'name': 'MYSQL', | ||
440 | 'ip_protocol': 'tcp', | ||
441 | 'from_port': '3306', | ||
442 | 'to_port': '3306', | ||
443 | }, | ||
444 | 'rdp': { | ||
445 | 'name': 'RDP', | ||
446 | 'ip_protocol': 'tcp', | ||
447 | 'from_port': '3389', | ||
448 | 'to_port': '3389', | ||
449 | }, | ||
450 | } | ||
diff --git a/meta-openstack/recipes-devtools/python/python-horizon/openstack-dashboard-apache.conf b/meta-openstack/recipes-devtools/python/python-horizon/openstack-dashboard-apache.conf new file mode 100644 index 0000000..5b77639 --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-horizon/openstack-dashboard-apache.conf | |||
@@ -0,0 +1,55 @@ | |||
1 | LoadModule wsgi_module /usr/lib64/apache2/modules/mod_wsgi.so | ||
2 | |||
3 | # python 2.7.2 has a bug that causes fork run in sub interpreters to fail | ||
4 | # http://bugs.python.org/issue13156 | ||
5 | WSGIApplicationGroup %{GLOBAL} | ||
6 | |||
7 | <VirtualHost *:80> | ||
8 | ServerAdmin webmaster@localhost | ||
9 | WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi | ||
10 | WSGIDaemonProcess horizon user=daemon group=daemon home=/usr/share/openstack-dashboard/openstack_dashboard/static | ||
11 | #WSGIProcessGroup openstack-dashboard | ||
12 | Alias /static /usr/share/openstack-dashboard/openstack_dashboard/static | ||
13 | |||
14 | DocumentRoot /usr/share/apache2/default-site/htdocs | ||
15 | |||
16 | <Directory /> | ||
17 | AllowOverride None | ||
18 | </Directory> | ||
19 | |||
20 | <Directory /usr/share/openstack-dashboard/openstack_dashboard/wsgi/> | ||
21 | <IfVersion < 2.3> | ||
22 | Order allow,deny | ||
23 | Allow from all | ||
24 | </IfVersion> | ||
25 | <IfVersion >= 2.3> | ||
26 | Require all granted | ||
27 | </IfVersion> | ||
28 | </Directory> | ||
29 | |||
30 | Alias /static/horizon %PYTHON_SITEPACKAGES%/horizon/static/horizon | ||
31 | |||
32 | <Directory %PYTHON_SITEPACKAGES%/horizon/static/horizon> | ||
33 | <IfVersion < 2.3> | ||
34 | Order allow,deny | ||
35 | Allow from all | ||
36 | </IfVersion> | ||
37 | <IfVersion >= 2.3> | ||
38 | Require all granted | ||
39 | </IfVersion> | ||
40 | </Directory> | ||
41 | |||
42 | <Directory /usr/share/openstack-dashboard/openstack_dashboard/static/> | ||
43 | <IfVersion < 2.3> | ||
44 | Order allow,deny | ||
45 | Allow from all | ||
46 | </IfVersion> | ||
47 | <IfVersion >= 2.3> | ||
48 | Require all granted | ||
49 | </IfVersion> | ||
50 | </Directory> | ||
51 | |||
52 | ErrorLog /var/log/apache2/openstack-dashboard-error.log | ||
53 | LogLevel debug | ||
54 | CustomLog /var/log/apache2/openstack-dashboard-access.log combined | ||
55 | </VirtualHost> | ||
diff --git a/meta-openstack/recipes-devtools/python/python-horizon_git.bb b/meta-openstack/recipes-devtools/python/python-horizon_git.bb index c3e167f..153f4d4 100644 --- a/meta-openstack/recipes-devtools/python/python-horizon_git.bb +++ b/meta-openstack/recipes-devtools/python/python-horizon_git.bb | |||
@@ -27,12 +27,14 @@ DEPENDS_${PN} += "python-django \ | |||
27 | python-pbr \ | 27 | python-pbr \ |
28 | " | 28 | " |
29 | 29 | ||
30 | PR = "r1" | 30 | PR = "r2" |
31 | SRCNAME = "horizon" | 31 | SRCNAME = "horizon" |
32 | 32 | ||
33 | SRC_URI = "git://github.com/openstack/${SRCNAME}.git;branch=stable/havana \ | 33 | SRC_URI = "git://github.com/openstack/${SRCNAME}.git;branch=stable/havana \ |
34 | file://horizon.init \ | 34 | file://horizon.init \ |
35 | file://fix_bindir_path.patch \ | 35 | file://fix_bindir_path.patch \ |
36 | file://openstack-dashboard-apache.conf \ | ||
37 | file://local_settings.py \ | ||
36 | " | 38 | " |
37 | 39 | ||
38 | SRCREV="b2259b352fd1e00a269b8275afa8093223598235" | 40 | SRCREV="b2259b352fd1e00a269b8275afa8093223598235" |
@@ -68,9 +70,25 @@ do_install_append() { | |||
68 | # mv ${D}${datadir}/bin ${DASHBOARD_DIR}/bin | 70 | # mv ${D}${datadir}/bin ${DASHBOARD_DIR}/bin |
69 | 71 | ||
70 | cp run_tests.sh ${HORIZON_CONF_DIR} | 72 | cp run_tests.sh ${HORIZON_CONF_DIR} |
73 | |||
74 | # the following are setup required for horizon-apache | ||
75 | install -d ${D}/usr/share/openstack-dashboard | ||
76 | cp -a ${S}/openstack_dashboard ${D}/usr/share/openstack-dashboard/ | ||
77 | cp ${S}/manage.py ${D}/usr/share/openstack-dashboard | ||
78 | |||
79 | install -D -m 644 ${WORKDIR}/local_settings.py \ | ||
80 | ${D}/etc/openstack-dashboard/local_settings.py | ||
81 | ln -fs /etc/openstack-dashboard/local_settings.py \ | ||
82 | ${D}/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py | ||
83 | |||
84 | install -D -m 644 ${WORKDIR}/openstack-dashboard-apache.conf \ | ||
85 | ${D}/etc/apache2/conf.d/openstack-dashboard-apache.conf | ||
86 | sed -i -e 's#%PYTHON_SITEPACKAGES%#${PYTHON_SITEPACKAGES_DIR}#' ${D}/etc/apache2/conf.d/openstack-dashboard-apache.conf | ||
87 | |||
88 | ln -fs openstack_dashboard/static ${D}/usr/share/openstack-dashboard/static | ||
71 | } | 89 | } |
72 | 90 | ||
73 | PACKAGES += "${SRCNAME}-tests ${SRCNAME}" | 91 | PACKAGES += "${SRCNAME}-tests ${SRCNAME} ${SRCNAME}-apache" |
74 | 92 | ||
75 | FILES_${PN} = "${libdir}/*" | 93 | FILES_${PN} = "${libdir}/*" |
76 | 94 | ||
@@ -81,6 +99,12 @@ FILES_${SRCNAME} = "${bindir}/* \ | |||
81 | ${datadir}/* \ | 99 | ${datadir}/* \ |
82 | " | 100 | " |
83 | 101 | ||
102 | FILES_${SRCNAME}-apache = "/etc/apache2 \ | ||
103 | /etc/openstack-dashboard/ \ | ||
104 | /usr/share/openstack-dashboard/ \ | ||
105 | /var/lib/openstack-dashboard \ | ||
106 | " | ||
107 | |||
84 | RDEP_ARCH_VAR = "" | 108 | RDEP_ARCH_VAR = "" |
85 | RDEP_ARCH_VAR_arm = "nodejs" | 109 | RDEP_ARCH_VAR_arm = "nodejs" |
86 | RDEP_ARCH_VAR_i686 = "nodejs" | 110 | RDEP_ARCH_VAR_i686 = "nodejs" |
@@ -113,3 +137,11 @@ RDEPENDS_${SRCNAME} = "${PN}" | |||
113 | INITSCRIPT_PACKAGES = "${SRCNAME}" | 137 | INITSCRIPT_PACKAGES = "${SRCNAME}" |
114 | INITSCRIPT_NAME_${SRCNAME} = "horizon" | 138 | INITSCRIPT_NAME_${SRCNAME} = "horizon" |
115 | INITSCRIPT_PARAMS_${SRCNAME} = "${OS_DEFAULT_INITSCRIPT_PARAMS}" | 139 | INITSCRIPT_PARAMS_${SRCNAME} = "${OS_DEFAULT_INITSCRIPT_PARAMS}" |
140 | |||
141 | RDEPENDS_${SRCNAME}-apache = "\ | ||
142 | apache2 \ | ||
143 | mod-wsgi \ | ||
144 | python-lesscpy \ | ||
145 | memcached \ | ||
146 | python-memcached \ | ||
147 | " | ||
diff --git a/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-controller.bb b/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-controller.bb index f3390a1..b716052 100644 --- a/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-controller.bb +++ b/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-controller.bb | |||
@@ -40,6 +40,8 @@ RDEPENDS_${PN} = " postgresql-setup \ | |||
40 | python-heat-cfntools \ | 40 | python-heat-cfntools \ |
41 | python-openstackclient \ | 41 | python-openstackclient \ |
42 | horizon \ | 42 | horizon \ |
43 | horizon-apache \ | ||
44 | apache2 \ | ||
43 | novnc \ | 45 | novnc \ |
44 | chkconfig \ | 46 | chkconfig \ |
45 | qemu \ | 47 | qemu \ |