summaryrefslogtreecommitdiff
path: root/server/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'server/pkg')
-rw-r--r--server/pkg/__init__.py0
-rwxr-xr-xserver/pkg/create-user-db97
-rwxr-xr-xserver/pkg/generate_wheels.sh13
-rwxr-xr-xserver/pkg/pip_install_requirements.sh84
-rw-r--r--server/pkg/requirements-latest.pip5
-rw-r--r--server/pkg/requirements-leap.pip1
-rw-r--r--server/pkg/requirements.pip8
-rw-r--r--server/pkg/soledad-server73
-rw-r--r--server/pkg/soledad-server.service31
-rw-r--r--server/pkg/soledad-sudoers2
-rw-r--r--server/pkg/utils.py101
11 files changed, 0 insertions, 415 deletions
diff --git a/server/pkg/__init__.py b/server/pkg/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/server/pkg/__init__.py
+++ /dev/null
diff --git a/server/pkg/create-user-db b/server/pkg/create-user-db
deleted file mode 100755
index 5e0ef5e2..00000000
--- a/server/pkg/create-user-db
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# create-user-db
-# Copyright (C) 2015 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-import os
-import sys
-import netrc
-import argparse
-from leap.soledad.common.couch import CouchDatabase
-from leap.soledad.common.couch.state import is_db_name_valid
-from leap.soledad.common.couch import list_users_dbs
-from leap.soledad.server._config import get_config
-
-
-BYPASS_AUTH = os.environ.get('SOLEDAD_BYPASS_AUTH', False)
-
-
-description = """
-Creates a user database.
-This is meant to be used by Soledad Server.
-"""
-parser = argparse.ArgumentParser(description=description)
-parser.add_argument('dbname', metavar='user-d34db33f', type=str,
- default='', nargs='?',
- help='database name on the format user-{uuid4}')
-parser.add_argument('--migrate-all', action='store_true',
- help="recreate all design docs for all existing account")
-CONF = get_config()
-DBCONF = get_config(section='database-security')
-NETRC_PATH = CONF['admin_netrc']
-
-
-def url_for_db(dbname):
- if BYPASS_AUTH:
- login = ''
- password = ''
- host = 'localhost'
- url = 'http://localhost:5984/%(dbname)s' % {
- 'dbname': dbname}
- else:
- if not os.path.exists(NETRC_PATH):
- print ('netrc not found in %s' % NETRC_PATH)
- sys.exit(1)
- parsed_netrc = netrc.netrc(NETRC_PATH)
- host, (login, _, password) = parsed_netrc.hosts.items()[0]
- url = ('http://%(login)s:%(password)s@%(host)s:5984/%(dbname)s' % {
- 'login': login,
- 'password': password,
- 'host': host,
- 'dbname': dbname})
- return url
-
-
-def ensure_database(dbname):
- """
- This method will ensure that a database named `dbname` will exist
- or created if it doesn't. Calling it twice will ensure that design
- documents are present and updated.
- The database name has to match this criteria to be considered valid:
- user-[a-f0-9]+
-
- :param dbname: name of the user database
- :type dbname: str
- """
- if not is_db_name_valid(dbname):
- print ("Invalid name! %s" % dbname)
- sys.exit(1)
- url = url_for_db(dbname)
- db_security = DBCONF
- db = CouchDatabase.open_database(url=url, create=True,
- replica_uid=None,
- database_security=db_security)
- print ('success! Ensured that database %s exists, with replica_uid: %s' %
- (db._dbname, db.replica_uid))
-
-
-if __name__ == '__main__':
- args = parser.parse_args()
- if args.migrate_all:
- couch_url = url_for_db('')
- for dbname in list_users_dbs(couch_url):
- ensure_database(dbname)
- else:
- ensure_database(args.dbname)
diff --git a/server/pkg/generate_wheels.sh b/server/pkg/generate_wheels.sh
deleted file mode 100755
index a13e2c7a..00000000
--- a/server/pkg/generate_wheels.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-# Generate wheels for dependencies
-# Use at your own risk.
-
-if [ "$WHEELHOUSE" = "" ]; then
- WHEELHOUSE=$HOME/wheelhouse
-fi
-
-pip wheel --wheel-dir $WHEELHOUSE pip
-pip wheel --wheel-dir $WHEELHOUSE -r pkg/requirements.pip
-if [ -f pkg/requirements-testing.pip ]; then
- pip wheel --wheel-dir $WHEELHOUSE -r pkg/requirements-testing.pip
-fi
diff --git a/server/pkg/pip_install_requirements.sh b/server/pkg/pip_install_requirements.sh
deleted file mode 100755
index f4b5f67a..00000000
--- a/server/pkg/pip_install_requirements.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-# Update pip and install LEAP base/testing requirements.
-# For convenience, $insecure_packages are allowed with insecure flags enabled.
-# Use at your own risk.
-# See $usage for help
-
-insecure_packages=""
-leap_wheelhouse=https://lizard.leap.se/wheels
-
-show_help() {
- usage="Usage: $0 [--testing] [--use-leap-wheels]\n --testing\t\tInstall dependencies from requirements-testing.pip\n
-\t\t\tOtherwise, it will install requirements.pip\n
---use-leap-wheels\tUse wheels from leap.se"
- echo -e $usage
-
- exit 1
-}
-
-process_arguments() {
- testing=false
- while [ "$#" -gt 0 ]; do
- # From http://stackoverflow.com/a/31443098
- case "$1" in
- --help) show_help;;
- --testing) testing=true; shift 1;;
- --use-leap-wheels) use_leap_wheels=true; shift 1;;
-
- -h) show_help;;
- -*) echo "unknown option: $1" >&2; exit 1;;
- esac
- done
-}
-
-return_wheelhouse() {
- if $use_leap_wheels ; then
- WHEELHOUSE=$leap_wheelhouse
- elif [ "$WHEELHOUSE" = "" ]; then
- WHEELHOUSE=$HOME/wheelhouse
- fi
-
- # Tested with bash and zsh
- if [[ $WHEELHOUSE != http* && ! -d "$WHEELHOUSE" ]]; then
- mkdir $WHEELHOUSE
- fi
-
- echo "$WHEELHOUSE"
-}
-
-return_install_options() {
- wheelhouse=`return_wheelhouse`
- install_options="-U --find-links=$wheelhouse"
- if $use_leap_wheels ; then
- install_options="$install_options --trusted-host lizard.leap.se"
- fi
-
- echo $install_options
-}
-
-return_insecure_flags() {
- for insecure_package in $insecure_packages; do
- flags="$flags --allow-external $insecure_package --allow-unverified $insecure_package"
- done
-
- echo $flags
-}
-
-return_packages() {
- if $testing ; then
- packages="-r pkg/requirements-testing.pip"
- else
- packages="-r pkg/requirements.pip"
- fi
-
- echo $packages
-}
-
-process_arguments $@
-install_options=`return_install_options`
-insecure_flags=`return_insecure_flags`
-packages=`return_packages`
-
-pip install -U wheel
-pip install -U pip
-pip install $install_options $insecure_flags $packages
diff --git a/server/pkg/requirements-latest.pip b/server/pkg/requirements-latest.pip
deleted file mode 100644
index d32e1ffa..00000000
--- a/server/pkg/requirements-latest.pip
+++ /dev/null
@@ -1,5 +0,0 @@
---index-url https://pypi.python.org/simple/
-
--e 'git+https://github.com/leapcode/leap_pycommon.git@develop#egg=leap.common'
--e '../common'
--e .
diff --git a/server/pkg/requirements-leap.pip b/server/pkg/requirements-leap.pip
deleted file mode 100644
index 93b447e5..00000000
--- a/server/pkg/requirements-leap.pip
+++ /dev/null
@@ -1 +0,0 @@
-leap.soledad.common>=0.9.0
diff --git a/server/pkg/requirements.pip b/server/pkg/requirements.pip
deleted file mode 100644
index 8354e94c..00000000
--- a/server/pkg/requirements.pip
+++ /dev/null
@@ -1,8 +0,0 @@
-configparser
-PyOpenSSL
-twisted>=12.3.0
-Beaker
-couchdb
-# Upstream needs a patch for py3 compatibility
-# Eventually falling back to standard json
-# python-cjson
diff --git a/server/pkg/soledad-server b/server/pkg/soledad-server
deleted file mode 100644
index 450f2277..00000000
--- a/server/pkg/soledad-server
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides: soledad
-# Required-Start: $network $named $remote_fs $syslog $time
-# Required-Stop: $network $named $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Start soledad daemon at boot time
-# Description: Synchronization of locally encrypted data among devices
-### END INIT INFO
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-PIDFILE=/var/run/soledad.pid
-RESOURCE_CLASS=leap.soledad.server.entrypoint.SoledadEntrypoint
-HTTPS_PORT=2424
-CONFDIR=/etc/soledad
-CERT_PATH="${CONFDIR}/soledad-server.pem"
-PRIVKEY_PATH="${CONFDIR}/soledad-server.key"
-TWISTD_PATH=/usr/bin/twistd
-HOME=/var/lib/soledad/
-SSL_METHOD=SSLv23_METHOD
-USER=soledad
-GROUP=soledad
-
-[ -r /etc/default/soledad ] && . /etc/default/soledad
-
-test -r ${CONFDIR} || exit 0
-
-. /lib/lsb/init-functions
-
-
-case "${1}" in
- start)
- echo -n "Starting soledad: twistd"
- start-stop-daemon --start --quiet \
- --exec ${TWISTD_PATH} -- \
- --uid=${USER} --gid=${GROUP} \
- --pidfile=${PIDFILE} \
- --syslog \
- --prefix=soledad-server \
- web \
- --class=${RESOURCE_CLASS} \
- --port=ssl:${HTTPS_PORT}:privateKey=${PRIVKEY_PATH}:certKey=${CERT_PATH}:sslmethod=${SSL_METHOD}
- echo "."
- ;;
-
- stop)
- echo -n "Stopping soledad: twistd"
- start-stop-daemon --stop --quiet \
- --pidfile ${PIDFILE}
- echo "."
- ;;
-
- restart)
- ${0} stop
- ${0} start
- ;;
-
- force-reload)
- ${0} restart
- ;;
-
- status)
- status_of_proc -p ${PIDFILE} ${TWISTD_PATH} soledad && exit 0 || exit ${?}
- ;;
-
- *)
- echo "Usage: /etc/init.d/soledad {start|stop|restart|force-reload|status}" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/server/pkg/soledad-server.service b/server/pkg/soledad-server.service
deleted file mode 100644
index 30c4bf88..00000000
--- a/server/pkg/soledad-server.service
+++ /dev/null
@@ -1,31 +0,0 @@
-[Unit]
-Description=Soledad Server
-
-[Service]
-Environment=PATH=/sbin:/bin:/usr/sbin:/usr/bin
-Environment=CLASS=leap.soledad.server.entrypoint.SoledadEntrypoint
-Environment=HTTPS_PORT=2424
-Environment=CERT_PATH=/etc/soledad/soledad-server.pem
-Environment=PRIVKEY_PATH=/etc/soledad/soledad-server.key
-Environment=HOME=/var/lib/soledad/
-Environment=SSL_METHOD=SSLv23_METHOD
-EnvironmentFile=-/etc/default/soledad
-
-ExecStart=/usr/bin/twistd \
- --nodaemon \
- --pidfile= \
- --syslog \
- --prefix=soledad-server \
- web \
- --class=${CLASS} \
- --port=ssl:${HTTPS_PORT}:privateKey=${PRIVKEY_PATH}:certKey=${CERT_PATH}:sslmethod=${SSL_METHOD}
-
-WorkingDirectory=/var/lib/soledad/
-
-User=soledad
-Group=soledad
-
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
diff --git a/server/pkg/soledad-sudoers b/server/pkg/soledad-sudoers
deleted file mode 100644
index 642497f8..00000000
--- a/server/pkg/soledad-sudoers
+++ /dev/null
@@ -1,2 +0,0 @@
-Cmnd_Alias SOLEDAD_CREATE_DB = /usr/bin/create-user-db
-soledad ALL=(soledad-admin) NOPASSWD: SOLEDAD_CREATE_DB
diff --git a/server/pkg/utils.py b/server/pkg/utils.py
deleted file mode 100644
index d1680102..00000000
--- a/server/pkg/utils.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# -*- coding: utf-8 -*-
-# utils.py
-# Copyright (C) 2013 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Utils to help in the setup process
-"""
-import os
-import re
-import sys
-
-
-def is_develop_mode():
- """
- Returns True if we're calling the setup script using the argument for
- setuptools development mode.
-
- This avoids messing up with dependency pinning and order, the
- responsibility of installing the leap dependencies is left to the
- developer.
- """
- args = sys.argv
- devflags = "setup.py", "develop"
- if (args[0], args[1]) == devflags:
- return True
- return False
-
-
-def get_reqs_from_files(reqfiles):
- """
- Returns the contents of the top requirement file listed as a
- string list with the lines.
-
- @param reqfiles: requirement files to parse
- @type reqfiles: list of str
- """
- for reqfile in reqfiles:
- if os.path.isfile(reqfile):
- return open(reqfile, 'r').read().split('\n')
-
-
-def parse_requirements(reqfiles=['requirements.txt',
- 'requirements.pip',
- 'pkg/requirements.pip']):
- """
- Parses the requirement files provided.
-
- The passed reqfiles list is a list of possible locations to try, the
- function will return the contents of the first path found.
-
- Checks the value of LEAP_VENV_SKIP_PYSIDE to see if it should
- return PySide as a dep or not. Don't set, or set to 0 if you want
- to install it through pip.
-
- @param reqfiles: requirement files to parse
- @type reqfiles: list of str
- """
-
- requirements = []
- skip_pyside = os.getenv("LEAP_VENV_SKIP_PYSIDE", "0") != "0"
- for line in get_reqs_from_files(reqfiles):
- # -e git://foo.bar/baz/master#egg=foobar
- if re.match(r'\s*-e\s+', line):
- pass
- # do not try to do anything with externals on vcs
- # requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1',
- # line))
- # http://foo.bar/baz/foobar/zipball/master#egg=foobar
- elif re.match(r'\s*https?:', line):
- requirements.append(re.sub(r'\s*https?:.*#egg=(.*)$', r'\1',
- line))
- # -f lines are for index locations, and don't get used here
- elif re.match(r'\s*-f\s+', line):
- pass
-
- # argparse is part of the standard library starting with 2.7
- # adding it to the requirements list screws distro installs
- elif line == 'argparse' and sys.version_info >= (2, 7):
- pass
- elif line == 'PySide' and skip_pyside:
- pass
- # do not include comments
- elif line.lstrip().startswith('#'):
- pass
- else:
- if line != '':
- requirements.append(line)
-
- return requirements