Browse code

Stop devstack from exploding in paste config changes

Change-Id: I842691479c7c1b46bab627a1f436d9cef3f5148d

Vishvananda Ishaya authored on 2012/01/12 04:34:13
Showing 2 changed files
... ...
@@ -1,131 +1,13 @@
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
-
29
-#######
30
-# EC2 #
31
-#######
32
-
33
-[composite:ec2]
34
-use = egg:Paste#urlmap
35
-/services/Cloud: ec2cloud
36
-/services/Admin: ec2admin
37
-
38
-[pipeline:ec2cloud]
39
-pipeline = ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer ec2executor
40
-
41
-[pipeline:ec2admin]
42
-pipeline = ec2faultwrap logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor
43
-
44
-[pipeline:ec2metadata]
45
-pipeline = ec2faultwrap logrequest ec2md
46
-
47
-[pipeline:ec2versions]
48
-pipeline = ec2faultwrap logrequest ec2ver
49
-
50
-[filter:ec2faultwrap]
51
-paste.filter_factory = nova.api.ec2:FaultWrapper.factory
52
-
53
-[filter:logrequest]
54
-paste.filter_factory = nova.api.ec2:RequestLogging.factory
55
-
56
-[filter:ec2lockout]
57
-paste.filter_factory = nova.api.ec2:Lockout.factory
58
-
59
-[filter:totoken]
60
-paste.filter_factory = keystone.middleware.ec2_token:EC2Token.factory
61
-
62
-[filter:ec2noauth]
63
-paste.filter_factory = nova.api.ec2:NoAuth.factory
64
-
65
-[filter:authenticate]
66
-paste.filter_factory = nova.api.ec2:Authenticate.factory
67
-
68
-[filter:cloudrequest]
69
-controller = nova.api.ec2.cloud.CloudController
70
-paste.filter_factory = nova.api.ec2:Requestify.factory
71
-
72
-[filter:adminrequest]
73
-controller = nova.api.ec2.admin.AdminController
74
-paste.filter_factory = nova.api.ec2:Requestify.factory
75
-
76
-[filter:authorizer]
77
-paste.filter_factory = nova.api.ec2:Authorizer.factory
78
-
79
-[app:ec2executor]
80
-paste.app_factory = nova.api.ec2:Executor.factory
81
-
82
-#############
83
-# Openstack #
84
-#############
85
-
86
-[composite:osapi]
87
-use = call:nova.api.openstack.v2.urlmap:urlmap_factory
88
-/: osversions
89
-/v1.1: openstack_api_v2
90
-/v2: openstack_api_v2
91
-
92
-[pipeline:openstack_api_v2]
93
-pipeline = faultwrap authtoken keystonecontext ratelimit serialize extensions osapi_app_v2
94
-
95
-[filter:faultwrap]
96
-paste.filter_factory = nova.api.openstack.v2:FaultWrapper.factory
97
-
98
-[filter:auth]
99
-paste.filter_factory = nova.api.openstack.v2.auth:AuthMiddleware.factory
100
-
101
-[filter:noauth]
102
-paste.filter_factory = nova.api.openstack.v2.auth:NoAuthMiddleware.factory
103
-
104
-[filter:ratelimit]
105
-paste.filter_factory = nova.api.openstack.v2.limits:RateLimitingMiddleware.factory
106
-
107
-[filter:serialize]
108
-paste.filter_factory = nova.api.openstack.wsgi:LazySerializationMiddleware.factory
109
-
110
-[filter:extensions]
111
-paste.filter_factory = nova.api.openstack.v2.extensions:ExtensionMiddleware.factory
112
-
113
-[app:osapi_app_v2]
114
-paste.app_factory = nova.api.openstack.v2:APIRouter.factory
115
-
116
-[pipeline:osversions]
117
-pipeline = faultwrap osversionapp
118
-
119
-[app:osversionapp]
120
-paste.app_factory = nova.api.openstack.v2.versions:Versions.factory
121
-
122 1
 ##########
123
-# Shared #
2
+# Extras #
124 3
 ##########
125 4
 
126 5
 [filter:keystonecontext]
127 6
 paste.filter_factory = keystone.middleware.nova_keystone_context:NovaKeystoneContext.factory
128 7
 
8
+[filter:totoken]
9
+paste.filter_factory = keystone.middleware.ec2_token:EC2Token.factory
10
+
129 11
 [filter:authtoken]
130 12
 paste.filter_factory = keystone.middleware.auth_token:filter_factory
131 13
 service_protocol = http
... ...
@@ -777,14 +777,26 @@ fi
777 777
 
778 778
 # Nova
779 779
 # ----
780
-
781 780
 if [[ "$ENABLED_SERVICES" =~ "n-api" ]]; then
782 781
     # We are going to use a sample http middleware configuration based on the
783 782
     # one from the keystone project to launch nova.  This paste config adds
784
-    # the configuration required for nova to validate keystone tokens. We add
785
-    # our own service token to the configuration.
786
-    cp $FILES/nova-api-paste.ini $NOVA_DIR/bin
783
+    # the configuration required for nova to validate keystone tokens.
784
+
785
+    # First we add a some extra data to the default paste config from nova
786
+    cat $NOVA_DIR/etc/nova/api-paste.ini $FILES/nova-api-paste.ini > $NOVA_DIR/bin/nova-api-paste.ini
787
+
788
+    # Then we add our own service token to the configuration
787 789
     sed -e "s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g" -i $NOVA_DIR/bin/nova-api-paste.ini
790
+
791
+    # Finally, we change the pipelines in nova to use keystone
792
+    function replace_pipeline() {
793
+        sed "/\[pipeline:$1\]/,/\[/s/^pipeline = .*/pipeline = $2/" -i $NOVA_DIR/bin/nova-api-paste.ini
794
+    }
795
+    replace_pipeline "ec2cloud" "ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer ec2executor"
796
+    replace_pipeline "ec2admin" "ec2faultwrap logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor"
797
+    replace_pipeline "openstack_api_v2" "faultwrap authtoken keystonecontext ratelimit serialize extensions osapi_app_v2"
798
+    replace_pipeline "openstack_compute_api_v2" "faultwrap authtoken keystonecontext ratelimit serialize compute_extensions osapi_compute_app_v2"
799
+    replace_pipeline "openstack_volume_api_v1" "faultwrap authtoken keystonecontext ratelimit serialize volume_extensions osapi_volume_app_v1"
788 800
 fi
789 801
 
790 802
 # Helper to clean iptables rules
... ...
@@ -998,7 +1010,7 @@ if [[ "$ENABLED_SERVICES" =~ "swift" ]]; then
998 998
    sed "s,%SWIFT_LOGDIR%,${swift_log_dir}," $FILES/swift/rsyslog.conf | sudo \
999 999
        tee /etc/rsyslog.d/10-swift.conf
1000 1000
    sudo restart rsyslog
1001
-   
1001
+
1002 1002
    # We create two helper scripts :
1003 1003
    #
1004 1004
    # - swift-remakerings