6934: Add packaging instructions
authorTom Clegg <tom@curoverse.com>
Mon, 10 Aug 2015 14:42:17 +0000 (10:42 -0400)
committerTom Clegg <tom@curoverse.com>
Wed, 12 Aug 2015 16:09:41 +0000 (12:09 -0400)
sdk/pam/.dockerignore
sdk/pam/Dockerfile
sdk/pam/MANIFEST.in
sdk/pam/fpm-info.sh [new file with mode: 0644]
sdk/pam/lib/libpam_arvados.py [new file with mode: 0644]
sdk/pam/pam-configs/arvados [moved from sdk/pam/examples/pam-auth-update_arvados with 59% similarity]
sdk/pam/setup.py
services/nodemanager/bin/arvados-node-manager [changed mode: 0644->0755]

index d6778dcd721ec1019b7bbf333751404eb67af579..86ec7546da41fa134473465f57906d1f65747a6d 100644 (file)
@@ -3,6 +3,4 @@
 .eggs
 *.egg_info
 build
-debian
-dist
 tmp
index 7c456076b48705c2653fece712bf616758e7f321..c5e83f8462dceb9a80ae236396796db68fad67f2 100644 (file)
@@ -1,3 +1,11 @@
+# Manual integration test:
+# 0. python setup.py sdist rotate --keep=1 --match .tar.gz
+# 1. docker build -name arvados:pam_test .
+# 2. docker run -it arvados:pam_test
+# 3. container# edit /etc/pam.d/login  # set api host and shell VM name
+# 4. container# useradd testusername
+# 5. container# login                  # enter username and token
+
 FROM debian:wheezy
 RUN apt-get update
 RUN apt-get -qy dist-upgrade
@@ -6,10 +14,7 @@ RUN apt-get -qy install python python-virtualenv libpam-python rsyslog
 RUN apt-get -qy install libcurl4-gnutls-dev python2.7-dev
 RUN pip install --upgrade setuptools
 RUN pip install python-pam
-ADD . /pam
-WORKDIR /pam
-RUN ./setup.py sdist
-RUN pip install dist/arvados-pam-*.tar.gz
-COPY examples/pam-auth-update_arvados /usr/share/pam-configs/arvados
+ADD dist /dist
+RUN pip install /dist/arvados-pam-*.tar.gz
 RUN DEBIAN_FRONTEND=noninteractive pam-auth-update arvados --remove unix
 CMD rsyslogd & tail -F /var/log/auth.log & bash
index 9561fb1061f6de114633c70871232a6896dcbe8a..39211b37901d7956841909465a40cb7cf0b45e88 100644 (file)
@@ -1 +1,3 @@
 include README.rst
+include lib/libpam_arvados.py
+include pam-configs/arvados
diff --git a/sdk/pam/fpm-info.sh b/sdk/pam/fpm-info.sh
new file mode 100644 (file)
index 0000000..4a81571
--- /dev/null
@@ -0,0 +1,17 @@
+case "$TARGET" in
+    debian* | ubuntu*)
+        fpm_depends+=('libpam-python')
+        ;;
+    *)
+        echo >&2 "ERROR: $PACKAGE: pam_python.so dependency unavailable in $TARGET."
+        return 1
+        ;;
+esac
+
+case "$FORMAT" in
+    deb)
+        fpm_args+=('--deb-recommends=rsyslog')
+        ;;
+esac
+
+fpm_args+=('--config-files=examples/pam-auth-update_arvados')
diff --git a/sdk/pam/lib/libpam_arvados.py b/sdk/pam/lib/libpam_arvados.py
new file mode 100644 (file)
index 0000000..deead7e
--- /dev/null
@@ -0,0 +1 @@
+from arvados_pam import *
similarity index 59%
rename from sdk/pam/examples/pam-auth-update_arvados
rename to sdk/pam/pam-configs/arvados
index eb5869413bbaaa949f14617d3f474c3d9ab84542..3d245f0b2467416b67492648829e36549e1de81f 100644 (file)
@@ -1,5 +1,8 @@
-# 1. Install in /usr/share/pam-configs/arvados
-# 2. Run `pam-auth-update arvados`
+# 1. Change "api.example" to your ARVADOS_API_HOST
+# 2. Change "shell.example" to this host's hostname
+#    (as it appears in the Arvados virtual_machines list)
+# 3. Install in /usr/share/pam-configs/arvados
+# 4. Run `pam-auth-update arvados`
 
 Name: Arvados authentication
 Default: yes
index f8a0c62393c5e29dbe5c04580697ad0100422eaa..7ab452103865c9b95c6f94be10279c9796804f53 100755 (executable)
@@ -13,8 +13,7 @@ README = os.path.join(SETUP_DIR, 'README.rst')
 tagger = egg_info_cmd.egg_info
 try:
     import gittaggers
-    if subprocess.check_call(['git', 'log', '-n1']):
-        tagger = gittaggers.EggInfoFromGit
+    tagger = gittaggers.EggInfoFromGit
 except (ImportError, OSError):
     pass
 
@@ -32,6 +31,10 @@ setup(name='arvados-pam',
       ],
       scripts=[
       ],
+      data_files=[
+          ('/usr/share/pam-configs', ['pam-configs/arvados']),
+          ('/lib/security', ['lib/libpam_arvados.py']),
+      ],
       install_requires=[
           'arvados-python-client>=0.1.20150801000000',
       ],
old mode 100644 (file)
new mode 100755 (executable)