* update horizon apache config
* updates apts for horizon
* better logging for horizon
* keystone conf settings
* only add swift endpoint if it is enabled
* new nova paste
Change-Id: I1edacbe5d8adc4bd5265d36abcaf01ce5490aefd
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
#!/usr/bin/env bash |
| 2 | 2 |
|
| 3 |
-# we will use the ``euca2ools`` cli tool that wraps the python boto |
|
| 3 |
+# we will use the ``euca2ools`` cli tool that wraps the python boto |
|
| 4 | 4 |
# library to test ec2 compatibility |
| 5 | 5 |
# |
| 6 | 6 |
|
| ... | ... |
@@ -22,7 +22,7 @@ source ./openrc |
| 22 | 22 |
popd |
| 23 | 23 |
|
| 24 | 24 |
# find a machine image to boot |
| 25 |
-IMAGE=`euca-describe-images | grep machine | cut -f2` |
|
| 25 |
+IMAGE=`euca-describe-images | grep machine | cut -f2 | head -n1` |
|
| 26 | 26 |
|
| 27 | 27 |
# launch it |
| 28 | 28 |
INSTANCE=`euca-run-instances $IMAGE | grep INSTANCE | cut -f2` |
| ... | ... |
@@ -12,23 +12,13 @@ DATABASES = {
|
| 12 | 12 |
'default': {
|
| 13 | 13 |
'ENGINE': 'django.db.backends.sqlite3', |
| 14 | 14 |
'NAME': os.path.join(LOCAL_PATH, 'dashboard_openstack.sqlite3'), |
| 15 |
+ 'TEST_NAME': os.path.join(LOCAL_PATH, 'test.sqlite3'), |
|
| 15 | 16 |
}, |
| 16 | 17 |
} |
| 17 | 18 |
|
| 19 |
+# The default values for these two settings seem to cause issues with apache |
|
| 18 | 20 |
CACHE_BACKEND = 'dummy://' |
| 19 |
- |
|
| 20 |
-# Add apps to horizon installation. |
|
| 21 |
-INSTALLED_APPS = ( |
|
| 22 |
- 'dashboard', |
|
| 23 |
- 'django.contrib.contenttypes', |
|
| 24 |
- 'django.contrib.sessions', |
|
| 25 |
- 'django.contrib.messages', |
|
| 26 |
- 'django.contrib.staticfiles', |
|
| 27 |
- 'django_openstack', |
|
| 28 |
- 'django_openstack.templatetags', |
|
| 29 |
- 'mailer', |
|
| 30 |
-) |
|
| 31 |
- |
|
| 21 |
+SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' |
|
| 32 | 22 |
|
| 33 | 23 |
# Send email to the console by default |
| 34 | 24 |
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' |
| ... | ... |
@@ -44,32 +34,40 @@ MAILER_EMAIL_BACKEND = EMAIL_BACKEND |
| 44 | 44 |
# EMAIL_HOST_USER = 'djangomail' |
| 45 | 45 |
# EMAIL_HOST_PASSWORD = 'top-secret!' |
| 46 | 46 |
|
| 47 |
-# FIXME: This needs to be changed to allow for multi-node setup. |
|
| 48 |
-OPENSTACK_KEYSTONE_URL = "http://localhost:5000/v2.0/" |
|
| 49 |
-OPENSTACK_KEYSTONE_ADMIN_URL = "http://localhost:35357/v2.0" |
|
| 47 |
+HORIZON_CONFIG = {
|
|
| 48 |
+ 'dashboards': ('nova', 'syspanel', 'settings',),
|
|
| 49 |
+ 'default_dashboard': 'nova', |
|
| 50 |
+ 'user_home': 'dashboard.views.user_home', |
|
| 51 |
+} |
|
| 52 |
+ |
|
| 53 |
+OPENSTACK_HOST = "127.0.0.1" |
|
| 54 |
+OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST |
|
| 55 |
+# FIXME: this is only needed until keystone fixes its GET /tenants call |
|
| 56 |
+# so that it doesn't return everything for admins |
|
| 57 |
+OPENSTACK_KEYSTONE_ADMIN_URL = "http://%s:35357/v2.0" % OPENSTACK_HOST |
|
| 50 | 58 |
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "Member" |
| 51 | 59 |
|
| 52 |
-# NOTE(tres): Available services should come from the service |
|
| 53 |
-# catalog in Keystone. |
|
| 54 |
-SWIFT_ENABLED = False |
|
| 60 |
+SWIFT_PAGINATE_LIMIT = 100 |
|
| 55 | 61 |
|
| 56 | 62 |
# Configure quantum connection details for networking |
| 57 | 63 |
QUANTUM_ENABLED = False |
| 58 |
-QUANTUM_URL = '127.0.0.1' |
|
| 64 |
+QUANTUM_URL = '%s' % OPENSTACK_HOST |
|
| 59 | 65 |
QUANTUM_PORT = '9696' |
| 60 | 66 |
QUANTUM_TENANT = '1234' |
| 61 | 67 |
QUANTUM_CLIENT_VERSION='0.1' |
| 62 | 68 |
|
| 63 |
-# No monitoring links currently |
|
| 64 |
-EXTERNAL_MONITORING = [] |
|
| 69 |
+# If you have external monitoring links, eg: |
|
| 70 |
+# EXTERNAL_MONITORING = [ |
|
| 71 |
+# ['Nagios','http://foo.com'], |
|
| 72 |
+# ['Ganglia','http://bar.com'], |
|
| 73 |
+# ] |
|
| 65 | 74 |
|
| 66 |
-# Uncomment the following segment to silence most logging |
|
| 67 |
-# django.db and boto DEBUG logging is extremely verbose. |
|
| 68 | 75 |
#LOGGING = {
|
| 69 | 76 |
# 'version': 1, |
| 70 |
-# # set to True will disable all logging except that specified, unless |
|
| 71 |
-# # nothing is specified except that django.db.backends will still log, |
|
| 72 |
-# # even when set to True, so disable explicitly |
|
| 77 |
+# # When set to True this will disable all logging except |
|
| 78 |
+# # for loggers specified in this configuration dictionary. Note that |
|
| 79 |
+# # if nothing is specified here and disable_existing_loggers is True, |
|
| 80 |
+# # django.db.backends will still log unless it is disabled explicitly. |
|
| 73 | 81 |
# 'disable_existing_loggers': False, |
| 74 | 82 |
# 'handlers': {
|
| 75 | 83 |
# 'null': {
|
| ... | ... |
@@ -77,20 +75,34 @@ EXTERNAL_MONITORING = [] |
| 77 | 77 |
# 'class': 'django.utils.log.NullHandler', |
| 78 | 78 |
# }, |
| 79 | 79 |
# 'console': {
|
| 80 |
-# 'level': 'DEBUG', |
|
| 80 |
+# # Set the level to "DEBUG" for verbose output logging. |
|
| 81 |
+# 'level': 'INFO', |
|
| 81 | 82 |
# 'class': 'logging.StreamHandler', |
| 82 | 83 |
# }, |
| 83 | 84 |
# }, |
| 84 | 85 |
# 'loggers': {
|
| 85 |
-# # Comment or Uncomment these to turn on/off logging output |
|
| 86 |
+# # Logging from django.db.backends is VERY verbose, send to null |
|
| 87 |
+# # by default. |
|
| 86 | 88 |
# 'django.db.backends': {
|
| 87 | 89 |
# 'handlers': ['null'], |
| 88 | 90 |
# 'propagate': False, |
| 89 | 91 |
# }, |
| 90 |
-# 'django_openstack': {
|
|
| 91 |
-# 'handlers': ['null'], |
|
| 92 |
+# 'horizon': {
|
|
| 93 |
+# 'handlers': ['console'], |
|
| 92 | 94 |
# 'propagate': False, |
| 93 | 95 |
# }, |
| 96 |
+# 'novaclient': {
|
|
| 97 |
+# 'handlers': ['console'], |
|
| 98 |
+# 'propagate': False, |
|
| 99 |
+# }, |
|
| 100 |
+# 'keystoneclient': {
|
|
| 101 |
+# 'handlers': ['console'], |
|
| 102 |
+# 'propagate': False, |
|
| 103 |
+# }, |
|
| 104 |
+# 'nose.plugins.manager': {
|
|
| 105 |
+# 'handlers': ['console'], |
|
| 106 |
+# 'propagate': False, |
|
| 107 |
+# } |
|
| 94 | 108 |
# } |
| 95 | 109 |
#} |
| 96 | 110 |
|
| ... | ... |
@@ -25,6 +25,9 @@ service-header-mappings = {
|
| 25 | 25 |
'swift' : 'X-Storage-Url', |
| 26 | 26 |
'cdn' : 'X-CDN-Management-Url'} |
| 27 | 27 |
|
| 28 |
+#List of extensions currently supported |
|
| 29 |
+extensions= osksadm,oskscatalog |
|
| 30 |
+ |
|
| 28 | 31 |
# Address to bind the API server |
| 29 | 32 |
# TODO Properties defined within app not available via pipeline. |
| 30 | 33 |
service_host = 0.0.0.0 |
| ... | ... |
@@ -32,23 +35,47 @@ service_host = 0.0.0.0 |
| 32 | 32 |
# Port the bind the API server to |
| 33 | 33 |
service_port = 5000 |
| 34 | 34 |
|
| 35 |
+# SSL for API server |
|
| 36 |
+service_ssl = False |
|
| 37 |
+ |
|
| 35 | 38 |
# Address to bind the Admin API server |
| 36 | 39 |
admin_host = 0.0.0.0 |
| 37 | 40 |
|
| 38 | 41 |
# Port the bind the Admin API server to |
| 39 | 42 |
admin_port = 35357 |
| 40 | 43 |
|
| 44 |
+# SSL for API Admin server |
|
| 45 |
+admin_ssl = False |
|
| 46 |
+ |
|
| 47 |
+# Keystone certificate file (modify as needed) |
|
| 48 |
+# Only required if *_ssl is set to True |
|
| 49 |
+certfile = /etc/keystone/ssl/certs/keystone.pem |
|
| 50 |
+ |
|
| 51 |
+# Keystone private key file (modify as needed) |
|
| 52 |
+# Only required if *_ssl is set to True |
|
| 53 |
+keyfile = /etc/keystone/ssl/private/keystonekey.pem |
|
| 54 |
+ |
|
| 55 |
+# Keystone trusted CA certificates (modify as needed) |
|
| 56 |
+# Only required if *_ssl is set to True |
|
| 57 |
+ca_certs = /etc/keystone/ssl/certs/ca.pem |
|
| 58 |
+ |
|
| 59 |
+# Client certificate required |
|
| 60 |
+# Only relevant if *_ssl is set to True |
|
| 61 |
+cert_required = True |
|
| 62 |
+ |
|
| 41 | 63 |
#Role that allows to perform admin operations. |
| 42 |
-keystone-admin-role = KeystoneAdmin |
|
| 64 |
+keystone-admin-role = Admin |
|
| 43 | 65 |
|
| 44 | 66 |
#Role that allows to perform service admin operations. |
| 45 | 67 |
keystone-service-admin-role = KeystoneServiceAdmin |
| 46 | 68 |
|
| 69 |
+#Tells whether password user need to be hashed in the backend |
|
| 70 |
+hash-password = True |
|
| 71 |
+ |
|
| 47 | 72 |
[keystone.backends.sqlalchemy] |
| 48 | 73 |
# SQLAlchemy connection string for the reference implementation registry |
| 49 | 74 |
# server. Any valid SQLAlchemy connection string is fine. |
| 50 | 75 |
# See: http://bit.ly/ideIpI |
| 51 |
-#sql_connection = sqlite:///keystone.db |
|
| 52 | 76 |
sql_connection = %SQL_CONN% |
| 53 | 77 |
backend_entities = ['UserRoleAssociation', 'Endpoints', 'Role', 'Tenant', |
| 54 | 78 |
'User', 'Credentials', 'EndpointTemplates', 'Token', |
| ... | ... |
@@ -60,12 +87,12 @@ sql_idle_timeout = 30 |
| 60 | 60 |
|
| 61 | 61 |
[pipeline:admin] |
| 62 | 62 |
pipeline = |
| 63 |
- urlrewritefilter |
|
| 64 |
- admin_api |
|
| 63 |
+ urlrewritefilter |
|
| 64 |
+ admin_api |
|
| 65 | 65 |
|
| 66 | 66 |
[pipeline:keystone-legacy-auth] |
| 67 | 67 |
pipeline = |
| 68 |
- urlrewritefilter |
|
| 68 |
+ urlrewritefilter |
|
| 69 | 69 |
legacy_auth |
| 70 | 70 |
RAX-KEY-extension |
| 71 | 71 |
service_api |
| ... | ... |
@@ -84,3 +111,6 @@ paste.filter_factory = keystone.frontends.legacy_token_auth:filter_factory |
| 84 | 84 |
|
| 85 | 85 |
[filter:RAX-KEY-extension] |
| 86 | 86 |
paste.filter_factory = keystone.contrib.extensions.service.raxkey.frontend:filter_factory |
| 87 |
+ |
|
| 88 |
+[filter:debug] |
|
| 89 |
+paste.filter_factory = keystone.common.wsgi:debug_filter_factory |
| ... | ... |
@@ -30,13 +30,17 @@ $BIN_DIR/keystone-manage $* role grant KeystoneServiceAdmin admin |
| 30 | 30 |
$BIN_DIR/keystone-manage $* service add nova compute "Nova Compute Service" |
| 31 | 31 |
$BIN_DIR/keystone-manage $* service add glance image "Glance Image Service" |
| 32 | 32 |
$BIN_DIR/keystone-manage $* service add keystone identity "Keystone Identity Service" |
| 33 |
-$BIN_DIR/keystone-manage $* service add swift object-store "Swift Service" |
|
| 33 |
+if [[ "$ENABLED_SERVICES" =~ "swift" ]]; then |
|
| 34 |
+ $BIN_DIR/keystone-manage $* service add swift object-store "Swift Service" |
|
| 35 |
+fi |
|
| 34 | 36 |
|
| 35 | 37 |
#endpointTemplates |
| 36 | 38 |
$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne nova http://%HOST_IP%:8774/v1.1/%tenant_id% http://%HOST_IP%:8774/v1.1/%tenant_id% http://%HOST_IP%:8774/v1.1/%tenant_id% 1 1 |
| 37 | 39 |
$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne glance http://%HOST_IP%:9292/v1.1/%tenant_id% http://%HOST_IP%:9292/v1.1/%tenant_id% http://%HOST_IP%:9292/v1.1/%tenant_id% 1 1 |
| 38 | 40 |
$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne keystone http://%HOST_IP%:5000/v2.0 http://%HOST_IP%:35357/v2.0 http://%HOST_IP%:5000/v2.0 1 1 |
| 39 |
-$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne swift http://%HOST_IP%:8080/v1/AUTH_%tenant_id% http://%HOST_IP%:8080/ http://%HOST_IP%:8080/v1/AUTH_%tenant_id% 1 1 |
|
| 41 |
+if [[ "$ENABLED_SERVICES" =~ "swift" ]]; then |
|
| 42 |
+ $BIN_DIR/keystone-manage $* endpointTemplates add RegionOne swift http://%HOST_IP%:8080/v1/AUTH_%tenant_id% http://%HOST_IP%:8080/ http://%HOST_IP%:8080/v1/AUTH_%tenant_id% 1 1 |
|
| 43 |
+fi |
|
| 40 | 44 |
|
| 41 | 45 |
# Tokens |
| 42 | 46 |
$BIN_DIR/keystone-manage $* token add %SERVICE_TOKEN% admin admin 2015-02-05T00:00 |
| ... | ... |
@@ -1,34 +1,54 @@ |
| 1 |
+############ |
|
| 2 |
+# Metadata # |
|
| 3 |
+############ |
|
| 4 |
+[composite:metadata] |
|
| 5 |
+use = egg:Paste#urlmap |
|
| 6 |
+/: metaversions |
|
| 7 |
+/latest: meta |
|
| 8 |
+/2007-01-19: meta |
|
| 9 |
+/2007-03-01: meta |
|
| 10 |
+/2007-08-29: meta |
|
| 11 |
+/2007-10-10: meta |
|
| 12 |
+/2007-12-15: meta |
|
| 13 |
+/2008-02-01: meta |
|
| 14 |
+/2008-09-01: meta |
|
| 15 |
+/2009-04-04: meta |
|
| 16 |
+ |
|
| 17 |
+[pipeline:metaversions] |
|
| 18 |
+pipeline = ec2faultwrap logrequest metaverapp |
|
| 19 |
+ |
|
| 20 |
+[pipeline:meta] |
|
| 21 |
+pipeline = ec2faultwrap logrequest metaapp |
|
| 22 |
+ |
|
| 23 |
+[app:metaverapp] |
|
| 24 |
+paste.app_factory = nova.api.metadata.handler:Versions.factory |
|
| 25 |
+ |
|
| 26 |
+[app:metaapp] |
|
| 27 |
+paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory |
|
| 28 |
+ |
|
| 1 | 29 |
####### |
| 2 | 30 |
# EC2 # |
| 3 | 31 |
####### |
| 4 | 32 |
|
| 5 | 33 |
[composite:ec2] |
| 6 | 34 |
use = egg:Paste#urlmap |
| 7 |
-/: ec2versions |
|
| 8 | 35 |
/services/Cloud: ec2cloud |
| 9 | 36 |
/services/Admin: ec2admin |
| 10 |
-/latest: ec2metadata |
|
| 11 |
-/2007-01-19: ec2metadata |
|
| 12 |
-/2007-03-01: ec2metadata |
|
| 13 |
-/2007-08-29: ec2metadata |
|
| 14 |
-/2007-10-10: ec2metadata |
|
| 15 |
-/2007-12-15: ec2metadata |
|
| 16 |
-/2008-02-01: ec2metadata |
|
| 17 |
-/2008-09-01: ec2metadata |
|
| 18 |
-/2009-04-04: ec2metadata |
|
| 19 |
-/1.0: ec2metadata |
|
| 20 | 37 |
|
| 21 | 38 |
[pipeline:ec2cloud] |
| 22 |
-pipeline = logrequest totoken authtoken keystonecontext cloudrequest authorizer ec2executor |
|
| 39 |
+pipeline = ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer ec2executor |
|
| 23 | 40 |
|
| 24 | 41 |
[pipeline:ec2admin] |
| 25 |
-pipeline = logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor |
|
| 42 |
+pipeline = ec2faultwrap logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor |
|
| 26 | 43 |
|
| 27 | 44 |
[pipeline:ec2metadata] |
| 28 |
-pipeline = logrequest ec2md |
|
| 45 |
+pipeline = ec2faultwrap logrequest ec2md |
|
| 29 | 46 |
|
| 30 | 47 |
[pipeline:ec2versions] |
| 31 |
-pipeline = logrequest ec2ver |
|
| 48 |
+pipeline = ec2faultwrap logrequest ec2ver |
|
| 49 |
+ |
|
| 50 |
+[filter:ec2faultwrap] |
|
| 51 |
+paste.filter_factory = nova.api.ec2:FaultWrapper.factory |
|
| 32 | 52 |
|
| 33 | 53 |
[filter:logrequest] |
| 34 | 54 |
paste.filter_factory = nova.api.ec2:RequestLogging.factory |
| ... | ... |
@@ -59,54 +79,45 @@ paste.filter_factory = nova.api.ec2:Authorizer.factory |
| 59 | 59 |
[app:ec2executor] |
| 60 | 60 |
paste.app_factory = nova.api.ec2:Executor.factory |
| 61 | 61 |
|
| 62 |
-[app:ec2ver] |
|
| 63 |
-paste.app_factory = nova.api.ec2:Versions.factory |
|
| 64 |
- |
|
| 65 |
-[app:ec2md] |
|
| 66 |
-paste.app_factory = nova.api.ec2.metadatarequesthandler:MetadataRequestHandler.factory |
|
| 67 |
- |
|
| 68 | 62 |
############# |
| 69 | 63 |
# Openstack # |
| 70 | 64 |
############# |
| 71 | 65 |
|
| 72 | 66 |
[composite:osapi] |
| 73 |
-use = egg:Paste#urlmap |
|
| 67 |
+use = call:nova.api.openstack.v2.urlmap:urlmap_factory |
|
| 74 | 68 |
/: osversions |
| 75 |
-/v1.0: openstackapi10 |
|
| 76 |
-/v1.1: openstackapi11 |
|
| 69 |
+/v1.1: openstack_api_v2 |
|
| 70 |
+/v2: openstack_api_v2 |
|
| 77 | 71 |
|
| 78 |
-[pipeline:openstackapi10] |
|
| 79 |
-pipeline = faultwrap authtoken keystonecontext ratelimit osapiapp10 |
|
| 80 |
- |
|
| 81 |
-[pipeline:openstackapi11] |
|
| 82 |
-pipeline = faultwrap authtoken keystonecontext ratelimit extensions osapiapp11 |
|
| 72 |
+[pipeline:openstack_api_v2] |
|
| 73 |
+pipeline = faultwrap authtoken keystonecontext ratelimit serialize extensions osapi_app_v2 |
|
| 83 | 74 |
|
| 84 | 75 |
[filter:faultwrap] |
| 85 |
-paste.filter_factory = nova.api.openstack:FaultWrapper.factory |
|
| 76 |
+paste.filter_factory = nova.api.openstack.v2:FaultWrapper.factory |
|
| 86 | 77 |
|
| 87 | 78 |
[filter:auth] |
| 88 |
-paste.filter_factory = nova.api.openstack.auth:AuthMiddleware.factory |
|
| 79 |
+paste.filter_factory = nova.api.openstack.v2.auth:AuthMiddleware.factory |
|
| 89 | 80 |
|
| 90 | 81 |
[filter:noauth] |
| 91 |
-paste.filter_factory = nova.api.openstack.auth:NoAuthMiddleware.factory |
|
| 82 |
+paste.filter_factory = nova.api.openstack.v2.auth:NoAuthMiddleware.factory |
|
| 92 | 83 |
|
| 93 | 84 |
[filter:ratelimit] |
| 94 |
-paste.filter_factory = nova.api.openstack.limits:RateLimitingMiddleware.factory |
|
| 85 |
+paste.filter_factory = nova.api.openstack.v2.limits:RateLimitingMiddleware.factory |
|
| 95 | 86 |
|
| 96 |
-[filter:extensions] |
|
| 97 |
-paste.filter_factory = nova.api.openstack.extensions:ExtensionMiddleware.factory |
|
| 87 |
+[filter:serialize] |
|
| 88 |
+paste.filter_factory = nova.api.openstack.wsgi:LazySerializationMiddleware.factory |
|
| 98 | 89 |
|
| 99 |
-[app:osapiapp10] |
|
| 100 |
-paste.app_factory = nova.api.openstack:APIRouterV10.factory |
|
| 90 |
+[filter:extensions] |
|
| 91 |
+paste.filter_factory = nova.api.openstack.v2.extensions:ExtensionMiddleware.factory |
|
| 101 | 92 |
|
| 102 |
-[app:osapiapp11] |
|
| 103 |
-paste.app_factory = nova.api.openstack:APIRouterV11.factory |
|
| 93 |
+[app:osapi_app_v2] |
|
| 94 |
+paste.app_factory = nova.api.openstack.v2:APIRouter.factory |
|
| 104 | 95 |
|
| 105 | 96 |
[pipeline:osversions] |
| 106 | 97 |
pipeline = faultwrap osversionapp |
| 107 | 98 |
|
| 108 | 99 |
[app:osversionapp] |
| 109 |
-paste.app_factory = nova.api.openstack.versions:Versions.factory |
|
| 100 |
+paste.app_factory = nova.api.openstack.v2.versions:Versions.factory |
|
| 110 | 101 |
|
| 111 | 102 |
########## |
| 112 | 103 |
# Shared # |
| ... | ... |
@@ -1,9 +1,15 @@ |
| 1 | 1 |
Django==1.3 |
| 2 |
-django-nose==0.1.2 |
|
| 3 | 2 |
django-mailer |
| 3 |
+django-nose==0.1.2 |
|
| 4 |
+django-nose-selenium |
|
| 4 | 5 |
django-registration==0.7 |
| 5 |
-python-cloudfiles |
|
| 6 |
+glance==2011.3 |
|
| 7 |
+pycrypto==2.3 |
|
| 8 |
+quantum |
|
| 6 | 9 |
sqlalchemy-migrate |
| 10 |
+python-cloudfiles |
|
| 7 | 11 |
|
| 12 |
+-e git+https://github.com/cloudbuilders/openstackx.git#egg=openstackx |
|
| 8 | 13 |
-e git+https://github.com/jacobian/openstack.compute.git#egg=openstack |
| 9 |
- |
|
| 14 |
+-e git+https://github.com/rackspace/python-novaclient.git#egg=python-novaclient |
|
| 15 |
+-e git+https://github.com/4P/python-keystoneclient.git#egg=python-keystoneclient |
| ... | ... |
@@ -537,7 +537,7 @@ if [[ "$ENABLED_SERVICES" =~ "openstackx" ]]; then |
| 537 | 537 |
cd $OPENSTACKX_DIR; sudo python setup.py develop |
| 538 | 538 |
fi |
| 539 | 539 |
if [[ "$ENABLED_SERVICES" =~ "horizon" ]]; then |
| 540 |
- cd $HORIZON_DIR/django-openstack; sudo python setup.py develop |
|
| 540 |
+ cd $HORIZON_DIR/horizon; sudo python setup.py develop |
|
| 541 | 541 |
cd $HORIZON_DIR/openstack-dashboard; sudo python setup.py develop |
| 542 | 542 |
fi |
| 543 | 543 |
if [[ "$ENABLED_SERVICES" =~ "quantum" ]]; then |
| ... | ... |
@@ -618,7 +618,13 @@ if [[ "$ENABLED_SERVICES" =~ "horizon" ]]; then |
| 618 | 618 |
|
| 619 | 619 |
|
| 620 | 620 |
# ``local_settings.py`` is used to override horizon default settings. |
| 621 |
- cp $FILES/horizon_settings.py $HORIZON_DIR/openstack-dashboard/local/local_settings.py |
|
| 621 |
+ local_settings=$HORIZON_DIR/openstack-dashboard/local/local_settings.py |
|
| 622 |
+ cp $FILES/horizon_settings.py $local_settings |
|
| 623 |
+ |
|
| 624 |
+ # Enable quantum in dashboard, if requested |
|
| 625 |
+ if [[ "$ENABLED_SERVICES" =~ "quantum" ]]; then |
|
| 626 |
+ sudo sed -e "s,QUANTUM_ENABLED = False,QUANTUM_ENABLED = True,g" -i $local_settings |
|
| 627 |
+ fi |
|
| 622 | 628 |
|
| 623 | 629 |
# Initialize the horizon database (it stores sessions and notices shown to |
| 624 | 630 |
# users). The user system is external (keystone). |
| ... | ... |
@@ -934,10 +940,12 @@ add_nova_flag "--vlan_interface=$VLAN_INTERFACE" |
| 934 | 934 |
add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova" |
| 935 | 935 |
add_nova_flag "--libvirt_type=$LIBVIRT_TYPE" |
| 936 | 936 |
if [[ "$ENABLED_SERVICES" =~ "openstackx" ]]; then |
| 937 |
- add_nova_flag "--osapi_extensions_path=$OPENSTACKX_DIR/extensions" |
|
| 937 |
+ add_nova_flag "--osapi_extension=nova.api.openstack.v2.contrib.standard_extensions" |
|
| 938 |
+ add_nova_flag "--osapi_extension=extensions.admin.Admin" |
|
| 938 | 939 |
fi |
| 939 | 940 |
if [[ "$ENABLED_SERVICES" =~ "n-vnc" ]]; then |
| 940 |
- add_nova_flag "--vncproxy_url=http://$HOST_IP:6080" |
|
| 941 |
+ VNCPROXY_URL=${VNCPROXY_URL:-"http://$HOST_IP:6080"}
|
|
| 942 |
+ add_nova_flag "--vncproxy_url=$VNCPROXY_URL" |
|
| 941 | 943 |
add_nova_flag "--vncproxy_wwwroot=$NOVNC_DIR/" |
| 942 | 944 |
fi |
| 943 | 945 |
add_nova_flag "--api_paste_config=$NOVA_DIR/bin/nova-api-paste.ini" |
| ... | ... |
@@ -1008,7 +1016,7 @@ if [[ "$ENABLED_SERVICES" =~ "key" ]]; then |
| 1008 | 1008 |
mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS keystone;' |
| 1009 | 1009 |
mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE keystone;' |
| 1010 | 1010 |
|
| 1011 |
- # FIXME (anthony) keystone should use keystone.conf.example |
|
| 1011 |
+ # Configure keystone.conf |
|
| 1012 | 1012 |
KEYSTONE_CONF=$KEYSTONE_DIR/etc/keystone.conf |
| 1013 | 1013 |
cp $FILES/keystone.conf $KEYSTONE_CONF |
| 1014 | 1014 |
sudo sed -e "s,%SQL_CONN%,$BASE_SQL_CONN/keystone,g" -i $KEYSTONE_CONF |
| ... | ... |
@@ -1021,7 +1029,7 @@ if [[ "$ENABLED_SERVICES" =~ "key" ]]; then |
| 1021 | 1021 |
sudo sed -e "s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g" -i $KEYSTONE_DATA |
| 1022 | 1022 |
sudo sed -e "s,%ADMIN_PASSWORD%,$ADMIN_PASSWORD,g" -i $KEYSTONE_DATA |
| 1023 | 1023 |
# initialize keystone with default users/endpoints |
| 1024 |
- BIN_DIR=$KEYSTONE_DIR/bin bash $KEYSTONE_DATA |
|
| 1024 |
+ ENABLED_SERVICES=$ENABLED_SERVICES BIN_DIR=$KEYSTONE_DIR/bin bash $KEYSTONE_DATA |
|
| 1025 | 1025 |
fi |
| 1026 | 1026 |
|
| 1027 | 1027 |
|
| ... | ... |
@@ -1,10 +1,10 @@ |
| 1 | 1 |
# compute service |
| 2 | 2 |
NOVA_REPO=https://github.com/openstack/nova.git |
| 3 |
-NOVA_BRANCH=stable/diablo |
|
| 3 |
+NOVA_BRANCH=master |
|
| 4 | 4 |
|
| 5 | 5 |
# storage service |
| 6 | 6 |
SWIFT_REPO=https://github.com/openstack/swift.git |
| 7 |
-SWIFT_BRANCH=stable/diablo |
|
| 7 |
+SWIFT_BRANCH=master |
|
| 8 | 8 |
|
| 9 | 9 |
# swift and keystone integration |
| 10 | 10 |
SWIFT_KEYSTONE_REPO=https://github.com/cloudbuilders/swift-keystone2.git |
| ... | ... |
@@ -12,7 +12,7 @@ SWIFT_KEYSTONE_BRANCH=master |
| 12 | 12 |
|
| 13 | 13 |
# image catalog service |
| 14 | 14 |
GLANCE_REPO=https://github.com/openstack/glance.git |
| 15 |
-GLANCE_BRANCH=stable/diablo |
|
| 15 |
+GLANCE_BRANCH=master |
|
| 16 | 16 |
|
| 17 | 17 |
# unified auth system (manages accounts/tokens) |
| 18 | 18 |
KEYSTONE_REPO=https://github.com/openstack/keystone.git |
| ... | ... |
@@ -20,11 +20,11 @@ KEYSTONE_BRANCH=stable/diablo |
| 20 | 20 |
|
| 21 | 21 |
# a websockets/html5 or flash powered VNC console for vm instances |
| 22 | 22 |
NOVNC_REPO=https://github.com/cloudbuilders/noVNC.git |
| 23 |
-NOVNC_BRANCH=diablo |
|
| 23 |
+NOVNC_BRANCH=master |
|
| 24 | 24 |
|
| 25 | 25 |
# django powered web control panel for openstack |
| 26 | 26 |
HORIZON_REPO=https://github.com/openstack/horizon.git |
| 27 |
-HORIZON_BRANCH=stable/diablo |
|
| 27 |
+HORIZON_BRANCH=master |
|
| 28 | 28 |
|
| 29 | 29 |
# python client library to nova that horizon (and others) use |
| 30 | 30 |
NOVACLIENT_REPO=https://github.com/openstack/python-novaclient.git |
| ... | ... |
@@ -33,11 +33,11 @@ NOVACLIENT_BRANCH=master |
| 33 | 33 |
# openstackx is a collection of extensions to openstack.compute & nova |
| 34 | 34 |
# that is *deprecated*. The code is being moved into python-novaclient & nova. |
| 35 | 35 |
OPENSTACKX_REPO=https://github.com/cloudbuilders/openstackx.git |
| 36 |
-OPENSTACKX_BRANCH=diablo |
|
| 36 |
+OPENSTACKX_BRANCH=master |
|
| 37 | 37 |
|
| 38 | 38 |
# quantum service |
| 39 | 39 |
QUANTUM_REPO=https://github.com/openstack/quantum |
| 40 |
-QUANTUM_BRANCH=stable/diablo |
|
| 40 |
+QUANTUM_BRANCH=master |
|
| 41 | 41 |
|
| 42 | 42 |
# CI test suite |
| 43 | 43 |
CITEST_REPO=https://github.com/openstack/openstack-integration-tests.git |