summary refs log tree commit diff
path: root/pkgs/applications/virtualization/openstack/keystone.nix
blob: 3060dcb04cb3507163e439187d3d07c93fe218c0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{ stdenv, fetchurl, pythonPackages, xmlsec, which, openssl }:

pythonPackages.buildPythonPackage rec {
  name = "keystone-${version}";
  version = "8.0.0";
  namePrefix = "";

  PBR_VERSION = "${version}";

  src = fetchurl {
    url = "https://github.com/openstack/keystone/archive/${version}.tar.gz";
    sha256 = "1xbrs7xgwjzrs07zyxxcl2lq18dh582gd6lx1zzzji8c0qmffy0z";
  };

  # remove on next version bump
  patches = [ ./remove-oslo-policy-tests.patch ];

  # https://github.com/openstack/keystone/blob/stable/liberty/requirements.txt
  propagatedBuildInputs = with pythonPackages; [
    pbr webob eventlet greenlet PasteDeploy paste routes cryptography six
    sqlalchemy_1_0 sqlalchemy_migrate stevedore passlib keystoneclient memcached
    keystonemiddleware oauthlib pysaml2 dogpile_cache jsonschema pycadf msgpack
    xmlsec MySQL_python

    # oslo
    oslo-cache oslo-concurrency oslo-config oslo-context oslo-messaging oslo-db
    oslo-i18n oslo-log oslo-middleware oslo-policy oslo-serialization oslo-service
    oslo-utils
  ];

  buildInputs = with pythonPackages; [
    coverage fixtures mock subunit tempest-lib testtools testrepository
    ldap ldappool webtest requests2 oslotest pep8 pymongo which
  ];

  makeWrapperArgs = ["--prefix PATH : '${openssl}/bin:$PATH'"];

  postInstall = ''
    # install .ini files
    mkdir -p $out/etc
    cp etc/* $out/etc

    # check all binaries don't crash
    for i in $out/bin/*; do
      $i --help
    done
  '';

  meta = with stdenv.lib; {
    homepage = http://keystone.openstack.org/;
    description = "Authentication, authorization and service discovery mechanisms via HTTP";
    license = stdenv.lib.licenses.asl20;
    platforms = stdenv.lib.platforms.linux;
  };
}