components/openstack/keystone/patches/no-pysaml2.patch
changeset 6851 f984e52b96bb
equal deleted inserted replaced
6850:f8d3bc724af7 6851:f984e52b96bb
       
     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