Fix typo in 389 support.

Change-Id: I0275bf6d1b1d6a98eb86a0eb1cad9c82b00e35b7
Update LDAP TLS settings for latest TLDAP.

Change-Id: Ieaed3c40fbd710e4c456b4a5587bbcd4f25f5017
Move binaries from karaage-admin.

It doesn't make a lot of sense that you can't manage karaage unless
karaage-admin is installed.

Change-Id: Iab37f6ef299e39d5f2178f8048004407885d33a0
Simplify migrations on package upgrade.

Change-Id: I0b68c375f4bb7973c37683edd711c3e4edb4430e
Make setup.py PEP8 compliant.

Change-Id: I08acb1f8c6009259b4f6d21e7a371b56daa8bd1c
Update migrations version threshold.

Change-Id: If9845c80487de6e5eaa86b8e4a5df59a0168db6e
Remove redundant code.

We created InstituteQuota and ProjectQuotas, but did not save them.

This is rather significant, as it means neither
machine_category_institute_save() or
machine_category_machine_category_project_save() are called at the
datastore.

Possibly what we are doing should be considered an error condition.  We
are joining an account for a machine category to a project or institute
that has no knowledge of this machine category. So the datastore will
receive notification that the project or institute was joined, but no
notification that the project or institute was created in the first
place. We do not currently check for this at present.

Change-Id: I4eae4d60b37ecfbd9c69de7c6254f948799317b1
Improve software test_change_group test.

Change-Id: I17b5cb6e1d37d09c9f894eb31e4858be481dd234
Fix datastore issues.

Details at https://github.com/Karaage-Cluster/karaage/issues/234.

We need to filter these events so we only call add_account_to_project
and add_account_to_institute for project/institute that are in the
relevant machine categories. Or rather, we should only call
add_account_to_project and add_account_to_institute if both the account
and the institute belong to the same machine category.

It could be argued that it would have lead to a cleaner API (and maybe
more efficient) by making the caller to the datastore function do this
check, however, at the moment, this way is simpler.

Also:

*  If we add a ProjectQuota/InstituteQuota, we need call
   add_account_to_project and add_account_to_institute as appropriate,
   as we may have new accounts for this project.

*  If we delete a ProjectQuota/InstituteQuota, we need call
   remove_account_from_project and remove_account_from_institute as
   appropriate, as accounts may have disappeared from the project.

Change-Id: Ia27537141822eedfcb545295629a39d4113ef539
Validate group name for new software.

Also give opportunity for user to override default group name.

Change-Id: Idb2ddad534da0883ac2ed4c4cb6bf710fd0a5f25
Validate group name for new institutes.

Also give opportunity for user to override default group name.

Change-Id: I677b22fa1aedbd6b39f3d75626d1649db503ce14
Simplify datastore add/remove account calls.

Change-Id: Id7fda4077547afc8b34fbf6284b5f31830f21bd5
Update logging calls.

Change-Id: I04f06b575d9c8caa664168e3752786820ccdb658
Version 3.0.10

Change-Id: Ic514e7affdbfa2e1097c375f35bef739b08e7aef
Fix replaces/breaks headers.

Change-Id: If311bd2b0584b2911741a48a18319a866086c1e6
Test password reset procedure.

Change-Id: I226c9d5e88534d9ce91dd80bc4b65a6d05c3306b
Add documentation for CLI commands.

Change-Id: I083280e512490e0238ed24de36c7ac2fa05d6cb0
Correct copyright statement.

Change-Id: I699615ac8b3366d454362a8ffd63f5104568fc5d
Use named URLs in get_email_link

Use named URLs rather than hardcoding the application URL.

Change-Id: Ie5906b2dc114aef1f085480adae50589a7f3085c
Don't hardcode login_url in login_required decorator

Otherwise settings.LOGIN_URL is completely ignored.

Change-Id: I755f6123f009f64d172cef8435597c7f6f763c18