From 3f20cb29b4ba4d414e75e24e268f2078ac38baef Mon Sep 17 00:00:00 2001 From: Kevin McDonald Date: Sun, 28 Apr 2013 21:02:11 -0500 Subject: [PATCH] Adds Testing Documention. Adds Sample Config. Adds CHANGELOG. --- CHANGELOG | 7 +++++ README.md | 43 ++++++++++++++++++++++++++----- etc/swftp/test.conf.sample | 15 +++++++++++ setup.py | 3 ++- swftp/test/functional/__init__.py | 2 +- 5 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 CHANGELOG create mode 100644 etc/swftp/test.conf.sample diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..d0c8fb0 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,7 @@ +swftp (1.0.6) + + * Adds Optional Stats Web Interface (JSON Output) + + * Less memory usage for SFTP uploads + + * Several Bug Fixes diff --git a/README.md b/README.md index 0af2602..23fc36e 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,13 @@ SwFTP is an FTP and SFTP interface for Openstack Object Storage (swift). It will Features -------- -* Configurable auth endpoint to use any OpenStack Swift installation. -* Server-wide Configurable HTTP Connection Pool for Swift Communications (size and timeout). -* Support for HTTPS communication to the backend OpenStack Object Storage cluster. -* Configurable welcome message for the FTP server. -* Simple Installation (pip install swftp). +* Configurable auth endpoint to use any OpenStack Swift installation +* Server-wide Configurable HTTP Connection Pool for Swift Communications (size and timeout) +* Support for HTTPS communication to the backend OpenStack Object Storage cluster +* Simple Installation `pip install swftp` * StatsD Support +* Stats Web Interface +* Chef Cookbook: https://github.com/softlayer/chef-swftp Requirements ------------ @@ -169,7 +170,7 @@ Packaged with SwFTP are a set of example init scripts, upstart scripts. They are * /etc/init/swftp-sftp * Supervisor * /etc/supervisor/conf.d/swftp.conf -* Example swftp.conf file. +* Example swftp.conf file * /etc/swftp/swftp.conf.sample Stats Web Interface @@ -260,6 +261,36 @@ Statsd support relies on [txStatsD](https://pypi.python.org/pypi/txStatsD). If t * stats.[prefix].command.rename * stats.[prefix].command.stat +Development +----------- +Development works with a fork and pull request process. Feel free submit pull requests. + +To run the tests, run +```bash +$ trial swftp +``` + +To run tests against live swftp servers (ftp and sftp) it requires a test config. The default location is `/etc/swftp/test.conf` but can be set with the SWFTP_TEST_CONFIG_FILE environmental variable. Here is a sample test config + +``` +[func_test] +auth_host = 127.0.0.1 +auth_port = 8080 +auth_ssl = no +auth_prefix = /auth/ + +account = test +username = tester +password = testing + +sftp_host = 127.0.0.1 +sftp_port = 5022 + +ftp_host = 127.0.0.1 +ftp_port = 5021 + +``` + License ------- Copyright (c) 2013 SoftLayer Technologies, Inc. diff --git a/etc/swftp/test.conf.sample b/etc/swftp/test.conf.sample new file mode 100644 index 0000000..682e2e4 --- /dev/null +++ b/etc/swftp/test.conf.sample @@ -0,0 +1,15 @@ +[func_test] +auth_host = 127.0.0.1 +auth_port = 8080 +auth_ssl = no +auth_prefix = /auth/ + +account = test +username = tester +password = testing + +sftp_host = 127.0.0.1 +sftp_port = 5022 + +ftp_host = 127.0.0.1 +ftp_port = 5021 diff --git a/setup.py b/setup.py index 88d8e5f..858cb6a 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,8 @@ from swftp import VERSION -short_description = 'SwFTP is an FTP and SFTP interface for Openstack Swift' +short_description = '''SwFTP is an FTP and SFTP interface for Openstack Object +Storage (swift)''' long_description = short_description try: long_description = open('README.md').read() diff --git a/swftp/test/functional/__init__.py b/swftp/test/functional/__init__.py index 1055da7..050190d 100644 --- a/swftp/test/functional/__init__.py +++ b/swftp/test/functional/__init__.py @@ -20,7 +20,7 @@ def get_config(): - config_file = os.environ.get('SWIFT_TEST_CONFIG_FILE', + config_file = os.environ.get('SWFTP_TEST_CONFIG_FILE', '/etc/swftp/test.conf') section = 'func_test' config = ConfigParser.ConfigParser()