|
1 We don't currently have pysaml2 in Solaris because of its |
|
2 dependency on pycrypto. |
|
3 |
|
4 This patch makes the pysaml2 dependency in keystone optional. |
|
5 The saml_idp_metadata command of keystone-manage and |
|
6 federation_routers are disabled if the modules that depend |
|
7 on pysaml2 cannot be loaded. |
|
8 |
|
9 This patch is not suitable for pushing upstream. |
|
10 |
|
11 --- keystone-9.0.0/keystone/version/service.py.~1~ 2016-04-06 23:37:38.000000000 -0800 |
|
12 +++ keystone-9.0.0/keystone/version/service.py 2016-05-18 20:25:46.012718550 -0800 |
|
13 @@ -26,7 +26,6 @@ from keystone.catalog import routers as |
|
14 from keystone.common import wsgi |
|
15 from keystone.credential import routers as credential_routers |
|
16 from keystone.endpoint_policy import routers as endpoint_policy_routers |
|
17 -from keystone.federation import routers as federation_routers |
|
18 from keystone.i18n import _LW |
|
19 from keystone.identity import routers as identity_routers |
|
20 from keystone.oauth1 import routers as oauth1_routers |
|
21 @@ -139,12 +138,17 @@ def v3_app_factory(global_conf, **local_ |
|
22 policy_routers, |
|
23 resource_routers, |
|
24 revoke_routers, |
|
25 - federation_routers, |
|
26 oauth1_routers, |
|
27 # TODO(morganfainberg): Remove the simple_cert router |
|
28 # when PKI and PKIZ tokens are removed. |
|
29 simple_cert_ext] |
|
30 |
|
31 + try: |
|
32 + from keystone.federation import routers as federation_routers |
|
33 + all_api_routers.append(federation_routers) |
|
34 + except: |
|
35 + pass |
|
36 + |
|
37 if CONF.trust.enabled: |
|
38 all_api_routers.append(trust_routers) |
|
39 |
|
40 --- keystone-9.0.0/keystone/cmd/cli.py.~1~ 2016-04-06 23:37:38.000000000 -0800 |
|
41 +++ keystone-9.0.0/keystone/cmd/cli.py 2016-05-19 00:26:16.105127235 -0800 |
|
42 @@ -32,7 +32,6 @@ from keystone.common import sql |
|
43 from keystone.common.sql import migration_helpers |
|
44 from keystone.common import utils |
|
45 from keystone import exception |
|
46 -from keystone.federation import idp |
|
47 from keystone.federation import utils as mapping_engine |
|
48 from keystone.i18n import _, _LW, _LI |
|
49 from keystone.server import backends |
|
50 @@ -848,6 +847,11 @@ class SamlIdentityProviderMetadata(BaseA |
|
51 |
|
52 @staticmethod |
|
53 def main(): |
|
54 + try: |
|
55 + from keystone.federation import idp |
|
56 + except: |
|
57 + raise ValueError(_('saml_idp_metadata not currently supported; ' |
|
58 + 'pysaml2 is required.')) |
|
59 metadata = idp.MetadataGenerator().generate_metadata() |
|
60 print(metadata.to_string()) |
|
61 |