quotaholder: Reuse holding IDs in set_quota
For efficiency reasons, commit 20c6de3 deletes and recreates holdingsinstead of updating them one by one. In order not to exhaust the IDs, wereuse the deleted ones.
astakos: Associate only accepted users with projects
Allow project enrollment and ownership only for users that are accepted,not just email_verified.
Also change base quota only for accepted users.
astakos: Refactor user creation
Provide auth.make_user() as the single way to create a new user. Thisfunction is responsible to set all automatically generated fields, such asusername, uuid, and token. Clean up AstakosUser.save(), that used toupdate these fields, and remove AstakosUser.__init__(). Remove trigger...
astakos: Make user uuid field non-null
Set a uuid to any user missing one and set the field null=False.
astakos: Lock user in im views
Make sure that views modifying users run in a transaction and lock usersbefore updating.
astakos: Reset user sign flags when adding new terms
When new terms are added, set has_signed_terms=False for all users, forcingthem to accept the new terms. If there are no terms, a new user is createdwith has_signed_terms=True.
With this change we can skip querying the terms when authenticating a user,...
astakos: Use TestCase instead of TransactionTestCase
We need to be sure that code runs in a transaction (provided by TestCase).If we need in some case to test the transactional behavior itself,we could there use TransactionTestCase.
astakos: Remove unused user creation forms
InvitedLocalUserCreationForm, InvitedThirdPartyUserCreationForm,ShibbolethUserCreationForm, and InvitedShibbolethUserCreationFormwere not used.
astakos: Correct realname splitting
If a realname splits in more than two parts, store the whole valueas last_name. Also use the util function rather than initializinga temporary AstakosUser, where needed.
astakos: Remove stack traceback
astakos: Preserve visibility flags on register
When re-registering an existing resource, do not override the visibilityflags. They may have been modified by the administrator.
Also fix field naming in resource-list.
astakos: Enhance quota listing
Enable filtering quota by resource, over limit status, usage andlimit values.
astakos: Modify base quota in bulk
Add option `--all' in command user-modify to support setting base quotafor all users. Exceptions can be specified with `--exclude'.
Also select user for update in user-modify.
astakos: Speed up setting quota for one resource
When registering a new resource or updating base quota for a singleresource, compute and set holdings just for this resource.
astakos: Speed up computing initial_quota
Restructure code to avoid an extra join and dict manipulations.
astakos: Revert moderation of non-verified users
Migration 0031 accepted users to whom activation email had been sent, evenif their email had not been verified. This is an inconsistent state. Weset moderated = False for inactive users. If there are any active users in...
astakos: Make limits possibly infinite
Register new resources with unlimited quota.
astakos: Rename --limit to --default-quota
Use a more descriptive name for this resource-modify option. Also changeresource-list column `limit' to `default_quota'.
astakos: Preserve existing quota on default change
View the resource defaults as a skeleton to be consulted when acceptinga new user. All users keep their quota in AstakosUserQuota.
Operate resource-modify in bulk, in order to avoiding updating thequotaholder separately for each resource.
astakos: Add resource visibility flags
Rename flag `allow_in_projects' to `ui_visible'. Add flag `api_visible'.The former entails the latter.
astakos: Restrict resource access in API
Make available in the API only resources with api_visible=True.
astakos: Split quota commands
Introduce quota-list and quota-verify.
Remove resource import/export commands
They have been subsumed by the respective service import/export commands.
astakos: Avoid multiple user lookups in quota sync
Also, remove unneeded param of astakos_users_quotas.
quotaholder: Speed up set_quota with bulk_create
Instead of updating every single holding, delete all after loading them,then reinsert them updated with bulk_create.
astakos: Recompute quota when updating a resource
Avoid stateful update of holdings when a resource limit changes; ratherrecompute and set all affected users' quota.
astakos: Replace decimal field with bigint
Any values that happen to be greater than the new max (2**63-1)are reduced to this value.
astakos: pep8 fixes
astakos: Include astakos_admin in helper script
cyclades: Export Astakos detailed stats from API
Add new 'astakos_admin' service to export basic statistics about Astakosservice. The stats are exported via the '/admin/stats/detail' API endpoint.Access to this view is only allowed to the users that belong to specific...
astakos: Command to export Astakos statistics
Add new 'snf-manage stats-astakos' management command to export basicstatistics about Astakos, like number of total, active and verified users perauthentication mechanism, together with resource usage for each resource. The...
Rename 'cpu' and 'ram' resources
Rename CPU and RAM relative resources to avoid data migrations.Specifically, the resources that are renamed are the following:
astakos: Speed up POST /tokens
Prefetch endpoint entries to avoid multiple queries.
Merge branch 'feature-cyclades-networks' into develop
Conflicts: snf-cyclades-app/synnefo/api/management/commands/server-inspect.py snf-cyclades-app/synnefo/app_settings/urls.py snf-cyclades-app/synnefo/logic/backend.py snf-cyclades-app/synnefo/logic/backend_allocator.py...
astakos: Fix user status in project test
Set users as moderated, so that they have proper quota.
Merge branch 'master' into develop
Conflicts: Changelog astakosclient/astakosclient/keypath.py ci/utils.py docs/admin-guide.rst snf-astakos-app/astakos/im/cookie.py snf-astakos-app/astakos/im/functions.py snf-astakos-app/astakos/im/quotas.py snf-astakos-app/astakos/im/views/projects.py...
astakos: Fix logging issues
astakos: Relax checks in resource registration
Allow registering a resource for a different service, if it originatesfrom the same component.
astakos: Update resource definitions in script
astakos: Add presentational data for new resources
Define how resources cyclades.active_ram, cyclades.active_cpu, andcyclades.floating_ip will be viewed on Usage and project creation pages.
astakos: Fix resource_catalog cleanup
Do not use list index for deleting list elements; it is unstable.
astakos: Remove call GET /authenticate
Use POST /tokens to authenticate. Delete AstakosClient.get_user_info()and replace its uses by AstakosClient.authenticate().
astakos: Move astakos_services from astakosclient
Move astakos_services from astakosclient to astakos.api.services.
astakos: Consider no base url in service register
Check whether component's base_url is None before assuming a string.
astakos: Fix system setup in stress test
astakos: Activation view improvements
Reject empty activation code requests
astakos: Add missing save in reject_user
astakos: Handle quota for accepted users
A user is accepted if moderated=True and is_rejected=False. Onlyaccepted users have entries in the quotaholder.
astakos: Update project-list help text
Cleanup project status description in management command project-list.
astakos: pep8 fix
astakos: Remove custom ForUpdateManager
Remove custom manager that implemented select_for_update(), since thisis already implemented in Django 1.4.
astakos: Use bulk_create in migrations
astakos: Remove custom commit_on_success decorator
Prior to 1.3, django wouldn't set the transaction dirty upon a DBexception and thus wouldn't trigger a rollback, resulting in a danglingaborted DB exception. See https://code.djangoproject.com/ticket/9964...
astakos: Separate templates in project creation
instead of including application form summary template in the application formview, render it from scratch. This resolves a bug caused when using django>1.2since block tags within the included templates are not supported....
astakos: Additional login form test
test empty POST dict form submition
astakos: Cache cleanup for recaptcha tests to work
astakos: user-modify command enhancements
New option ``--delete`` to permanently delete a user entry.New option ``--set-email`` to change user's email address.
astakos: Test ratelimit/recaptcha functionality
astakos: Set initial signup values if available
prefill third party signup form with initial values (first name, last name,email) if available in the third party provider response.
astakos: Shibboleth EPPN migration functionality
Prior to this commit astakos used the mod_shib2 EPPN header value as theunique identifier for associating shibboleth idp users to astakos user entries.
This commit alters this behaviour and from now on astakos resloves unique...
instead of including application form summary template in the application formview, render it from scratch. This resolves a bug caused when using django>1.2since block tags within the included templates are not supported.
astakos: Store arbitrary shibboleth headers
additionally to common shibboleth headers, append any arbitrary shibbolethheaders (SHIB_*) set from the IdP.
astakos: Correctly set user password in user-add
password field contains the user password in hashed format. The proper wayto populate the field is by using the set_password method of the user object.
astakos: Handle quota for moderated users only
At some points, verified users where mistakenly assumed.
Request Django=>1.4, <1.5
Drop support for Django 1.2. Remove compatibility code that were used inorder to support Django 1.2 and 1.4. Finally update django documentationlink in the docs.
wheezy: Rename depricated HttpRequest attribute
From django docs:""" HttpRequest.raw_post_data renamed to HttpRequest.body
This attribute was confusingly named HttpRequest.raw_post_data, but itactually provided the body of the HTTP request. It’s been renamed to...
Merge branch 'hotfix-0.14.8' into develop
Merge hotfix-0.14.8 which ports Synnefo to wheezy and Django 1.4.5
Conflicts: ci/ci_squeeze.conf ci/ci_wheezy.conf ci/schemas/one_node_squeeze/packages.conf ci/schemas/one_node_squeeze/squeeze.conf ci/schemas/one_node_squeeze/wheezy.conf...
astakos: Avoid spaces in field names
Rename fields in component-list management command so that they do notcontain spaces.
astakos: Fix service update
When registering a service that already exists, update its attributes.
astakos: Remove trailing slash from example URLs
Since endpoint URLs do not end with slash any more, adapt base and ui URLexamples for uniformity.
astakos: Store base URL in component
Deployer should provide it when adding a new component. Service endpointsoriginating from a component are expected to match its base URL; otherwise,a warning is issued during service registration. Re-registration with...
astakos: Show component details
Introduce management command `component-show', which lists componentattributes, including a list with the related registered services.
Revert "wheezy: Rename depricated HttpRequest attribute"
This reverts commit cfc4b87c301504627e6a75ab2e4d32c8cd7a6e15. Thiscommit is reverted because it breaks compatibility with Django 1.2. Thisshould be applied for Synnefo 0.15.
Fix a python syntax error
In python 2 we cannot have keyword-only arguments (PEP 3102).And even if we could, this was not the right way todeclare a python function.
astakos: Replace commit_manually decorator
Replace commit_manually decorator with commit_on_success, since thefunctions that were using this decorator did not really needed it.
astakos: Fix `save() got unexpected argument'
From Django documentation:""" It’s also important that you pass through the arguments that can bepassed to the model method – that’s what the *args, **kwargs bit does.Django will, from time to time, extend the capabilities of built-in...
astakos: Don't use `user.__dict__'
In Django 1.4 the `request.user' returns a SimpleLazyObject insteadof a LazyUser. The equivalent of `user.__dict__' is now`user._wrapped.__dict__'. In order to be backward compatiblewe are requesting explicitely the attributes we want and not...
astakos: Fix project identification in test
Test was mistakenly using application id rather than project id insome occasions.
astakos: Fix quota API test
Sort list before comparing, since ordering in the response data isnot specified. Triggered when run with postgres.
Add messages context processor to default settings
wheezy: urls module doesn't export defaults
wheezy: Update Django dependency to <=1.4.5
astakos: Remove duplicate project query
Enrolling a user in a project now returns 409 if the project doesnot exist, rather than 404.
Update South dependency to >=0.7.3
astakos: Remove 0.14-specific migration script
Merge branch 'hotfix-0.14.6' into develop
Conflicts: Changelog docs/admin-guide.rst snf-cyclades-app/synnefo/api/management/commands/network-remove.py snf-cyclades-app/synnefo/api/servers.py snf-cyclades-app/synnefo/api/tests/servers.py snf-cyclades-app/synnefo/logic/backend.py...
branding: new setting FOOTER_EXTRA_MESSAGE
FOOTER_EXTRA_MESSAGE setting appears above Copyright message at theCompute templates and the Dashboard UI. Accepts html tags.
astakos: Add missing cyclades service in script
pithos: Clear pithos_public endpoint's versionId
pithos_public service is not an API and should not be versioned; thepublic URLs operated by pithos do not include a version segment, anyway.
Also make its type more specific, since type `public' is too generic.
common: Strip trailing slash from endpoints
Remove trailing slash from the endpoints' publicURL field in servicedefinitions. These values end up in the response of POST /tokens, and,according to the keystone API, should not end in slash. A trailing slash...
astakos: fix verification message
The new registration process of Astakos allows to verify the newuser's email before actually activating the user:
1. User signs up providing an email2. A verification email is sent to the user (with verification link)...
astakos: Fix approval_terms view
Fix crash when request user is not logged in.Add tests
Move middlewares from snf-common to snf-webproject
Move context_processors from common to middleware
astakos: Force a members limit in project applications
astakos: Restrict project naming in API call
Use the same regex as in the UI, which matches domain-name-like strings.
astakos: Style for resource:ip (Dashboard->Usage)
astakos: Correct padding auth methods headers