aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keystone-moon/doc/source/extensions/moon/moon.rst34
-rw-r--r--keystone-moon/etc/keystone.conf.sample36
-rw-r--r--keystone-moon/keystone/contrib/moon/controllers.py3
-rw-r--r--keystone-moon/keystone/contrib/moon/core.py6
4 files changed, 59 insertions, 20 deletions
diff --git a/keystone-moon/doc/source/extensions/moon/moon.rst b/keystone-moon/doc/source/extensions/moon/moon.rst
index fc862675..f2b3b0bc 100644
--- a/keystone-moon/doc/source/extensions/moon/moon.rst
+++ b/keystone-moon/doc/source/extensions/moon/moon.rst
@@ -28,25 +28,27 @@ Moon is a contribute backend so you have to enable it by modifying /etc/keystone
.. code-block:: ini
- [filter:moon]
- paste.filter_factory = keystone.contrib.moon.routers:Admin.factory
-
- ...
+ [pipeline:moon_pipeline]
+ pipeline = sizelimit url_normalize request_id build_auth_context token_auth admin_token_auth json_body ec2_extension_v3 s3_extension moon_service
- [pipeline:public_api]
- # The last item in this pipeline must be public_service or an equivalent
- # application. It cannot be a filter.
- pipeline = sizelimit url_normalize build_auth_context token_auth admin_token_auth json_body ec2_extension user_crud_extension moon public_service
+ [app:moon_service]
+ use = egg:keystone#moon_service
- [pipeline:admin_api]
- # The last item in this pipeline must be admin_service or an equivalent
- # application. It cannot be a filter.
- pipeline = sizelimit url_normalize build_auth_context token_auth admin_token_auth json_body ec2_extension s3_extension crud_extension moon admin_service
+ ...
- [pipeline:api_v3]
- # The last item in this pipeline must be service_v3 or an equivalent
- # application. It cannot be a filter.
- pipeline = sizelimit url_normalize build_auth_context token_auth admin_token_auth json_body ec2_extension_v3 s3_extension simple_cert_extension revoke_extension moon service_v3
+ [composite:main]
+ use = egg:Paste#urlmap
+ /moon = moon_pipeline
+ /v2.0 = public_api
+ /v3 = api_v3
+ / = public_version_api
+
+ [composite:admin]
+ use = egg:Paste#urlmap
+ /moon = moon_pipeline
+ /v2.0 = admin_api
+ /v3 = api_v3
+ / = admin_version_api
...
diff --git a/keystone-moon/etc/keystone.conf.sample b/keystone-moon/etc/keystone.conf.sample
index cce0876a..8a95d933 100644
--- a/keystone-moon/etc/keystone.conf.sample
+++ b/keystone-moon/etc/keystone.conf.sample
@@ -2089,3 +2089,39 @@
# Entrypoint for the trust backend driver in the keystone.trust namespace.
# (string value)
#driver = sql
+
+
+[moon]
+
+# Configuration backend driver
+configuration_driver = keystone.contrib.moon.backends.memory.ConfigurationConnector
+
+# Tenant backend driver
+tenant_driver = keystone.contrib.moon.backends.sql.TenantConnector
+
+# Authorisation backend driver
+authz_driver = keystone.contrib.moon.backends.flat.SuperExtensionConnector
+
+# IntraExtension backend driver
+intraextension_driver = keystone.contrib.moon.backends.sql.IntraExtensionConnector
+
+# InterExtension backend driver
+interextension_driver = keystone.contrib.moon.backends.sql.InterExtensionConnector
+
+# Logs backend driver
+log_driver = keystone.contrib.moon.backends.flat.LogConnector
+
+# Local directory where all policies are stored
+policy_directory = /etc/keystone/policies
+
+# Local directory where Root IntraExtension configuration is stored
+root_policy_directory = policy_root
+
+# URL of the Moon master
+master = 'http://localhost:35357/'
+
+# Login of the Moon master
+master_login = 'admin'
+
+# Password of the Moon master
+master_password = 'nomoresecrete'
diff --git a/keystone-moon/keystone/contrib/moon/controllers.py b/keystone-moon/keystone/contrib/moon/controllers.py
index b4413dbf..d3f1bfad 100644
--- a/keystone-moon/keystone/contrib/moon/controllers.py
+++ b/keystone-moon/keystone/contrib/moon/controllers.py
@@ -860,6 +860,7 @@ class MoonAuth(controller.V3Controller):
return project
def get_token(self, context, **kw):
+ master_url = CONF.moon.master
data_auth = {
"auth": {
"identity": {
@@ -894,7 +895,7 @@ class MoonAuth(controller.V3Controller):
"title": "UnScopedToken"
}}
- req = requests.post("http://localhost:5000/v3/auth/tokens",
+ req = requests.post("{}/v3/auth/tokens".format(master_url),
json=data_auth,
headers={"Content-Type": "application/json"}
)
diff --git a/keystone-moon/keystone/contrib/moon/core.py b/keystone-moon/keystone/contrib/moon/core.py
index 83657317..943b8e78 100644
--- a/keystone-moon/keystone/contrib/moon/core.py
+++ b/keystone-moon/keystone/contrib/moon/core.py
@@ -54,13 +54,13 @@ OPTS = [
default='policy_root',
help='Local directory where Root IntraExtension configuration is stored.'),
cfg.StrOpt('master',
- default='',
+ default='http://localhost:35357/',
help='Address of the Moon master (if empty, the current Moon is the master).'),
cfg.StrOpt('master_login',
- default='',
+ default='admin',
help='Login of the Moon master.'),
cfg.StrOpt('master_password',
- default='',
+ default='nomoresecrete',
help='Password of the Moon master.'),
]