astakos: Make ProjectResourceGrant fields non null
Field project_capacity now requires a value; field project_applicationwas mistakenly set nullable.
astakos: Fill grants' project_capacity
Each resource grant that a project provides is now also associated witha project-level limit. This is set by consulting the existing user-levellimit and the max members allowed. If the latter limit is not set, weconsider the project's current number of active members.
astakos: Add project default in resources
Add field `project_default' in resources. This will serve as a skeleton tofill project quota (both project-level and member-level limits) forresources not specified by the application.
The field is initialized by consulting the default base quota (field...
astakos: Make limit_on_members_number a bigint
We need bigint in order to represent infinite as 2**63-1.
astakos: Replace application None values
None will from now on denote a missing field of the application. Use emptystring for missing string and the conventional max int (2**63-1) for amissing limit.
astakos: Store all project info on the project model
A project entry will contain all information needed to operate a project.An application will store just the information provided by the applicant.
astakos: Identify projects with a uuid
Introduce field `uuid'; use it to refer to projects in the API and themanagement commands.
astakos: Introduce private projects
A private project can only be accessed by its owner and its members.No user can join the project; but the owner can enroll members.
astakos: Accept users with non-zero quota usage
Due to a non-handled case during the introduction of the user moderationframework, there can exist non-accepted users with non-zero quota usage.This can have happened if a user was set inactive before that migration....
astakos: Make user uuid field non-null
Set a uuid to any user missing one and set the field null=False.
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: 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: 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: 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: Use bulk_create in migrations
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: Simplify project schema
Applications now point to a project (rather than an extra model Chain).A Project is created upon submitting an application; it always points toa single `reference' application.
Model Chain is kept as a sequence to generate project ids.
astakos: Remove precursor_application field
Submit a project modification by specifying a project id rather thanan application
astakos: Change project membership schema
Replace ProjectMembershipHistory with ProjectMembershipLog, whichrecords every state transition. Never delete any ProjectMembershipentry; set it instead to an appropriate state.
astakos: Fix sqlite-related migration issues
As per 63bcab0, do not attempt to delete index when run on sqlite.
astakos: Improve logging for Projects and Applications
Introduce model ProjectLog as well as fields in ProjectApplicationin order to record all actions.
astakos: Lock globally when approving application
We need to make sure that the name to be approved is uniqueamong all non-terminated projects. We thus acquire a globallock before approving.
astakos: Fix sqlite-related issues in migration
In migration 0022, ProjectApplication's field `chain' is altered froma plain integer field to a foreign key. This triggers a south commandto create an index for the said field. However, it seems that sqlite...
astakos: Remove debug print from migration
astakos: Remove data part from migration 0022
A data migration was mistakenly squashed in schema migration, causingproblems with newer south versions. This data migration is not neededin a production system, because it affects only a table introduced in...
astakos: Fix typo in service name
astakos: Record the service originating a resource
Add field service_origin in model Resource as well as in theresource definitions, indicating the service where the resourcecomes from. It is not a foreign key, in order to allow deletinga component/service, without affecting registered resources and...
astakos: Generate tokens randomly
Token is now random 256 bits encoded as a base64 string.Increase the auth_token database fields to accommodate it.
astakos: Lift old-style services to components
Add model Component and migrate services along with their tokenand UI URL to this new model. Rename service to component whereneeded.
Add field service_type in Resource and fill it based on the nameof the service that used to own the resource.
astakos: Add new-style services with endpoints
Drop old Service model and add models Service, Endpoint, and EndpointData.Remove Resource's reference to Service.
astakos: Impose uniqueness on auth_token
Add uniqueness constraint in AstakosUser and Component models.Before that, invalidate (set to None) any duplicate tokens.
When renewing a token, retry a couple of times, if generated tokenis in use.
astakos: Set type for existing services
Following Keystone there is now a `type' field in model Service.This adds a data migration in order to set the type for existingservices as follows: astakos: identity cyclades: compute pithos: storage
astakos: provide get_endpoints api call
astakos: New user fields migration improvement
set accepted_policy to 'migration' for already accepted users which have not yeta verified email address (old flow)
astakos: User activation flow improvements
Major refactoring on user email verification/activation process---------------------------------------------------------------Activation logic moved from dispersed code in functions/view modules toActivationBackend methods. All user activation handling code in astakos views...
astakos: Remove deprecated AstakosUser fields
astakos: Use DateTimeField for enhanced precision
Refs #3717
Replace instances of DateField in ProjectMembership andProjectMembershipHistory.
astakos: Control exposing resources in projects
Add attribute `allow_in_projects' in Resource model (True by default).Set this flag for astakos.pending_app to False in the descriptionof astakos resources.
astakos: Migrate service and resource names
- Rename 'pithos+' to 'pithos'- Prepend resource names with 'service_name.'
astakos: Reintroduce foreign key from Resource to Service
Also merge all migrations from 0026 to 0032.
Store service access url in database
Move intdecimalfield.py to snf_django package
Rename it to fields.py and update all migrations that reference the field.
astakos: Remove obsolete ProjectResourceGrant fields
astakos: Remove obsolete fields of AstakosUserQuota
Remove quantity, import_limit, export_limit.Update user-set-initial-quota management command.
astakos: Remove obsolete project-related model fields
Several fields of models Project and ProjectMembership were relatedto the external syncing to quotaholder and have become obsolete sincethe inclusion of quotaholder in astakos.
Make resource name independent of service name
Also remove unused ResourceMetadata model.
Remove resource/service model dependencies
- Remove foreign key dependency between Service/Resource model. Replace it with a service CharField to keep track of the service identifier that the resource was registered from.- Remove all references to resource service name in resource lookups
Astakos missing Service model migrations
Sync astakos migrations
apply authpolicies migrations on top of recently added astakos migrations indevelop branch.
Merge branch 'release-0.13' into feature-astakos-authpolicies
Specify reason when denying project application
Add field `response' in ProjectApplication model.Add option `-m' in project-control command.
Refs #3493
Authentication providers improvements
Major authentication provider refactoring to support
- Modular and easily configurable messages with common context- Fine grained provider policies to support appling specific policies to users and/or groups
Key points:...
Add per-user limit on pending applications
Add UserSettings model for storing integer-valued settings.If an entry is missing, a default synnefo setting is consulted.
The limit can be set/unset with snf-manage user-update.
Create user uuid for inactive accounts
Disable problematic migration
Make Chain a proper db table
Keep chain IDs in table Chain and add foreign keys from ProjectApplicationand Project to Chain.
This will allow us to reference a possibly not yet approved projectin a more concise way.
Set Project.name None when terminated so that it can be reused
Merge remote-tracking branch 'synnefo/feature-projects' into feature-astakos-newstyles
Additional audits in data migration
DB index for ProjectApplication state
Clear service token expiration
Add states DISMISSED and CANCELLED in ProjectApplication and related callsFix defaults in DateTimeFields
Changes in registering to quotaholder
Add an 'uplimit' (default) field in Resource;change AstakosUserQuota fields to IntDecimalField;pass all four limits of initial quotas to the quotaholder;register services and resources explicitly upon creation;a wrapper for get_quota.
Fix migrations
Astakos users and auth providers data migrations
Migration fix
Change projects, eliminate development migrations
Change Project's state field and ProjectMembershipHistory's person field;replace all migrations starting 0015 with a single new one.
Need to check for missing data migrations.
Auth providers improvements
- Enrich login/logout messages.- Clear unverified accounts when user adds the same third party account to an existing account.- Other minor improvements.
Composite index chain, id in project application table
Database migration for user quota policies
Merge branch 'latest-quota' of https://code.grnet.gr/git/synnefo into latest-quota
Conflicts: snf-astakos-app/astakos/im/forms.py snf-astakos-app/astakos/im/functions.py
Provide commands for importing/exporting existing user resource policies
Add an id for a chain of applications; this is also the project id
New state handling for astakos projects and memberships
Distinguishes is_active, is_pending flags from actual states in ProjectMembership;likewise is_active, is_modified flags in Project.Splits syncing in pre-process, actual syncing, and post-process.
wip Generalize project state
Service model `order` field
Allow empty project start date
Redefine IntDecimalField to allow support for south migration;apply the new field to astakos.im.ProjectResourceGrant
Membership policies kept in settings instead of db
Project deactivation/termination
Remove foreign key constraints from ProjectMembershipHistory
Clear expiration date from Astakos services
Increase username length to fit email values
Update Astakos API to provider calls for retrieving uuid from the username and vice versa, extend astakos client library (snf-common) and update pithos to use uuids instead of email for account identification
Delete more obsolete code
Fix models
Merge branch 'devel-0.13' of https://code.grnet.gr/git/astakos into latest-quota
Conflicts: snf-astakos-app/astakos/im/messages.py snf-astakos-app/astakos/im/notifications.py snf-astakos-app/astakos/im/urls.py snf-astakos-app/astakos/im/views.py
Unique user identifier
auto generated user identifier
Merge migrations
Conflicts: devtools/fabfile.py
Conflicts: snf-astakos-app/astakos/im/forms.py snf-astakos-app/astakos/im/management/commands/service-add.py snf-astakos-app/astakos/im/messages.py snf-astakos-app/astakos/im/models.py...
Single model for ProjectApplication & Definition - Membership sync
User status migrations
- Set email_verified and activation_sent to all active users
Third party login providers fixes/improvements
- Store additional provider info in PendingThirdPartyUser entries- Include third party registration logic in main signup view. Additional per provider signup views removed.- Unique email validation for all activation backend forms...
Set unique together resource name and service
Progress VII
Progress VI