summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorZiad Sawalha <github@highbridgellc.com>2011-05-14 23:14:51 -0500
committerZiad Sawalha <github@highbridgellc.com>2011-05-14 23:14:51 -0500
commitd0447d4aba2b0fc00e5cd057484d5f0c1c5ce7e2 (patch)
tree9d84e9239e31ccea74911220f8ef1f0ef5089cb3 /README
parenta3d6a8d8b9657efa6fbd9874467b63329a734ea5 (diff)
downloadkeystone-d0447d4aba2b0fc00e5cd057484d5f0c1c5ce7e2.tar.gz
keystone-d0447d4aba2b0fc00e5cd057484d5f0c1c5ce7e2.tar.xz
keystone-d0447d4aba2b0fc00e5cd057484d5f0c1c5ce7e2.zip
Merged pull 37. Removes bottle, adds configuration, and adds daemonization
Diffstat (limited to 'README')
-rw-r--r--README179
1 files changed, 0 insertions, 179 deletions
diff --git a/README b/README
deleted file mode 100644
index e7e685f6..00000000
--- a/README
+++ /dev/null
@@ -1,179 +0,0 @@
-
-Keystone: Identity Service
-==========================
-
-Keystone is a proposed independent authentication service for [OpenStack](http://www.openstack.org).
-
-This initial proof of concept aims to address the current use cases in Swift and Nova which are:
-
-* REST-based, token auth for Swift
-* many-to-many relationship between identity and tenant for Nova.
-
-
-SERVICES:
----------
-
-* Keystone - authentication service
-* Auth_Token - WSGI middleware that can be used to handle token auth protocol (WSGI or remote proxy)
-* Echo - A sample service that responds by returning call details
-
-Also included:
-
-* Auth_Basic - Stub for WSGI middleware that will be used to handle basic auth
-* Auth_OpenID - Stub for WSGI middleware that will be used to handle openid auth protocol
-* RemoteAuth - WSGI middleware that can be used in services (like Swift, Nova, and Glance) when Auth middleware is running remotely
-
-
-ENVIRONMENT & DEPENDENCIES:
----------------------------
-see pip-requires for dependency list
-Setup:
-Install http://pypi.python.org/pypi/setuptools
- sudo easy_install pip
- sudo pip install -r pip-requires
-
-RUNNING KEYSTONE:
------------------
-
-During development, you can simply run
-
- $ bin/keystone-auth
-
-It dumps stdout and stderr onto the terminal.
-
-
-RUNNING KEYSOTNE IN AS ROOT IN PRODUCTION
----------------------------------------------
-In production, stdout and stderr need to be closed and all theoutput needs tobe redirected to a log file.
-Once the package is installed through setup tools, RPM, deb, or ebuild keystone-control is installed
-as /usr/sbin/keystone-control. Typically, it will be started a script in /etc/init.d/keystoned
-
-keystone-control can invoke keystone-auth and start the keystone daemon with
-
- $ /usr/sbin/keystone-control auth start
-
-It writes the process id of the daemon into /var/run/keystone/keystine-auth.pid. he daemon can be stopped with
-
- $ /usr/sbin/keystone-control auth stop
-
-keystone-control has the infrastructure to start and stop multiple servers keystone-xxx
-
-DEVELOPMENT OF keystone-control
--------------------------------
-
-During the development of keystone-control can be started as a user instead of root
-
-From the topdir
-
- $ bin/keystone-control --pid-file pidfile auth <start|stop|restart>
-
-config.py takes the config file from topdir/etc/keystone.conf
-
-If the keystone package is also intalled on the system
-/etc/keystone.conf or /etc/keystone/keystone.conf has higher priority
-than <top_dir>/etc/keystone.conf. If you are also doing development on a
-system that has keystone.conf installed in /etc/you need to disambiguate it by
-
- $ bin/keystone-control --confg-file etc/keystone.conf --pid-file pidfile auth <start|stop|restart>
-
-Also, keystone-control calls keystone-auth and it need to be in the PATH
-
- $ export PATH=<top_dir>/bin:$PATH
-
-
-RUNNING TEST SERVICE:
----------------------
-
- Standalone stack (with Auth_Token)
- $ cd echo/echo
- $ python echo.py
-
- Distributed stack (with RemoteAuth local and Auth_Token remote)
- $ cd echo/echo
- $ python echo.py --remote
-
- in separate session
- $ cd keystone/auth_protocols
- $ python auth_token.py --remote
-
-DEMO CLIENT:
----------------------
- $ cd echo/echo
- $ python echo_client.py
-
-INSTALLING KEYSTONE:
---------------------
-
- $ python setup.py build
- $ sudo python setup.py install
-
-
-INSTALLING TEST SERVICE:
-------------------------
-
- $ cd echo
- $ python setup.py build
- $ sudo python setup.py install
-
-
-TESTING
--------
-
-After starting identity.py a keystone.db sql-lite database should be created.
-
-To test setup the test database:
-
- $ sqlite3 keystone/keystone.db < test/test_setup.sql
-
-To clean the test database
-
- $ sqlite3 keystone/keystone.db < test/kill.sql
-
-To run client demo (with all auth middleware running locally on sample service):
-
- $ python echo/echo/echo.py
- $ python echo/echo/echo_client.py
-
-To perform contract validation and load testing, use SoapUI (for now).
-
-Using SOAPUI:
-
-Download [SOAPUI](http://sourceforge.net/projects/soapui/files/):
-
-To Test Identity Service:
-
-* File->Import Project
-* Select tests/IdentitySOAPUI.xml
-* Double click on "Keystone Tests" and press the green play (>) button
-
-
-Unit Test on Identity Services
-------------------------------
-In order to run the unit test on identity services start the auth sever
-
- $ cd test/unit
- $ ../../bin/keystone-auth
-
-There are 8 groups of tests. They can be run individually or as an entire colection. To run the entire test suite run
-
- $ python test_keystone
-
-A test can also be run individually e.g.
-
- $ python test_token
-
-
-DATABASE SCHEMA
----------------
-
- CREATE TABLE groups(group_id varchar(255),group_desc varchar(255),tenant_id varchar(255),FOREIGN KEY(tenant_id) REFERENCES tenant(tenant_id));
- CREATE TABLE tenants(tenant_id varchar(255), tenant_desc varchar(255), tenant_enabled INTEGER, PRIMARY KEY(tenant_id ASC));
- CREATE TABLE token(token_id varchar(255),user_id varchar(255),expires datetime,tenant_id varchar(255));
- CREATE TABLE user_group(user_id varchar(255),group_id varchar(255), FOREIGN KEY(user_id) REFERENCES user(id), FOREIGN KEY(group_id) REFERENCES groups(group_id));
- CREATE TABLE user_tenant(tenant_id varchar(255),user_id varchar(255),FOREIGN KEY(tenant_id) REFERENCES tenant(tenant_id),FOREIGN KEY(user_id) REFERENCES user(id));
- CREATE TABLE users(id varchar(255),password varchar(255),email varchar(255),enabled integer);
-
-
-
-
-