History | View | Annotate | Download (41 kB)
astakos: Replace str with unicode
Define unicode in astakos models rather than str.
Replace set_path with defaultdict in quota handling
astakos: A bit of refactoring of projects views
- Update project views to work with the updated projects logic- Use api.projects methods when applicable- Common project view decorator- Common view for app/project details
astakos: Adapt resource reconciliation
Assume base project when reconciling astakos resources.
astakos: Disallow base project termination
Base projects accompany users and should not be arbitrarily terminated.
astakos: Add command project-modify
Add a management command that directly modifies an initialized project.
astakos: Sync project-based quota
Update quota code to take into account the differentiated sources.There is no more need to lock the user when updating quota; lockingthe project is now adequate.
Update quota listing in management commands; introduce option --quota in...
astakos: Adapt to new project/app scheme
astakos: Make base project when creating user
Make base project along with the user with the same uuid. Enable theproject upon user acceptance.
astakos: Mark project membership as initialized
Add flag `initialized' on ProjectMembership. It is set to true once a useris accepted. It is used to distinguish users that have registeredproject quota (but may have been removed since then).
astakos: Identify projects with a uuid
Introduce field `uuid'; use it to refer to projects in the API and themanagement commands.
astakos: Reduce import clutter in functions.py
astakos: Refactor notification code
Introduce generic notify functions that consult a dict for a given action.
astakos: Remove unneeded argument
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: Revoke access granted to resource
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: Restrict resource access in API
Make available in the API only resources with api_visible=True.
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: Remove custom ForUpdateManager
Remove custom manager that implemented select_for_update(), since thisis already implemented in Django 1.4.
astakos: Remove duplicate project query
Enrolling a user in a project now returns 409 if the project doesnot exist, rather than 404.
astakos: Fix enroll when already requested
Enrolling a user sets its membership state directly to ACCEPTED, alsoin case of REQUESTED.
astakos: Describe and implement API for projects
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: Omit project_id in membership operations
Identify a membership by its id only.
astakos: Lock project rather than chain
astakos: Cleanup checks for membership actions
astakos: Set project-wise resource limit in new app
astakos: Return membership when joining project
astakos: Raise project-specific exceptions on failure
Replace IOError and PermissionDenied with project-specific exceptions.
astakos: Define permission levels for project actions
astakos: Refactor membership checks for conciseness
astakos: Add log info in membership actions
Record user who performed the action and optional reason.
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: Allow re-activation of terminated projects
Define function `reinstate' to re-activate a terminated project. If itsname is taken by another active project, it fails.
astakos: Fix some issues pointed out by pyflakes
astakos: Update the project stress test
astakos: Enhance project tables rendering
Prefetch data in bulk queries in order to avoid continuously queryingthe database.
Merge branch 'hotfix-0.14.3' into develop
Conflicts: Changelog snf-astakos-app/astakos/im/messages.py snf-pithos-app/pithos/api/manage_accounts/__init__.py snf-pithos-app/pithos/api/management/commands/reconcile-resources-pithos.py snf-pithos-app/pithos/api/settings.py...
astakos: Fix arg passing in messages
Merge branch 'hotfix-0.14.2' into develop
Conflicts: Changelog snf-astakos-app/astakos/im/messages.py snf-astakos-app/astakos/im/views/target/__init__.py snf-cyclades-app/synnefo/logic/backend.py snf-cyclades-app/synnefo/logic/management/commands/reconcile-servers.py...
astakos: Fix arg in terminate function
Conflicts: snf-astakos-app/astakos/im/views/projects.py snf-cyclades-app/synnefo/logic/backend.py snf-django-lib/snf_django/lib/astakos.py version
astakos: Fix call of helper function
astakos: Disallow join/leave for non-alive projects
astakos: pep8 fixes
astakos: Properly resolve urls from base host
BASE_URL contains the prefix which is also included in paths returned fromdjango's reverse utility. Thereby joining BASE_URL with a reverse resultgenerates urls with duplicate BASE_PREFIX. Replaced BASE_URL with BASE_HOST in...
astakos: remove BASEURL, use BASE_URL setting
make synnefo URLs consistent and configurable
https://service.deployment.vendor.tld/service-base/api-prefix/hard/path |___________________________________| |__________| |________| |_______| BASE_HOST BASE_PATH PREFIX Hardcoded...
astakos: Move email subjects from settings to messages
Email subjects are parameterized by site name and application-specific data. Other than that they should be constants ratherthan settings.
Remove unused GROUP_CREATION_SUBJECT.
astakos: unified settings handling
Import astakos settings module instead of importing specific settings
astakos: remove unused imports
astakos: Remove code handling UserSetting
Keep UserSetting model; to be removed in a future version.
astakos: Remove some unused imports
Also add a missing import in quotas.py
astakos: Lock chain for projects, user for syncing
Lock project's chain for every operation affecting either a project oran application. Subsequently, lock user when needing to sync or to issuecommission to update pending_app quota.
In views, replace locking qh_add_pending_app with check_pending_app_quota,...
branding: Use branding util to render email templates
Use synnefo_branding.util.render_to_string accross synnefo apps to be able touse branding variables within the templates.
astakos: do not catch send mail errors
The user should not be informed if for any reasonthe server can not send an email.
Revert "astakos: fix send mail error handling"
This reverts commit 903ce7dccb44db3d3e5fd280a7683747dfa37d7f.
astakos: fix send mail error handling
Restore SendMailError, ChangeEmailError and SendFeedbackError exceptions(deleted by previous commit) since they are still used.
Merge branch 'feature-branding' into develop
Conflicts: snf-astakos-app/astakos/im/templates/im/account_pending_moderation_notification.txt snf-astakos-app/astakos/im/templates/im/group_creation_notification.txt snf-astakos-app/astakos/im/views.py
astakos: Force query eval when used in __in filter
Related to commit aee9a38
Also fix call of qh_sync_users in migration script.
astakos: Allow submitting application with no resources
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 membership policy settings
Available join and leave policies are internally defined and shouldnot be changed by settings. Move policy descriptions to presentation.py.
Do not convert to string the lookup key in templatetags/filters.py
astakos: Improve quota syncing
- Split code that lists and syncs quotas - Merge the latter with qh_sync_users - Move qh_sync_projects in quotas.py; sync only active members - Add missing select for update in project suspend - Clean up quotas.py
Use custom method for joining urls
Implement 'join_urls' method for joining a base URL with a path,without worrying about redundant or missing "/". Do not use'urlparse.urljoin', since it has different semantics.
Merge branch 'develop' into feature-branding
Conflicts: snf-astakos-app/astakos/im/static/im/cloudbar/cloudbar.js snf-astakos-app/astakos/im/templates/im/base.html snf-astakos-app/astakos/im/templates/im/landing.html snf-astakos-app/astakos/im/views.py...
Revert "astakos: Fix bug in getting membership"
This reverts commit 7ce770be9fd9668fff4088eff2421cbeb0cc311e.
Update astakos tests to use membership id.
astakos: Remove an obsolete function
astakos: Fix bug in getting membership
Search based on 'person__id' and not 'id'.
astakos: Control project members by membership id
astakos: Add reason for all actions on applications
For cancel and dismiss, it is for now just a placeholder.
astakos: Make submit_application arguments explicit
astakos: Cleanup input of submit_application
Form passes only a tuple (name, limit) for each selected resource,omitting presentational data.
astakos: Handle pair of exceptions properly
astakos: Reconcile resources
Sync number of pending applications to quotaholder.
astakos: accept commission immediately after issue
Unify these operations when registering a pending application,in order to make sure no commission can be left pending.
Revert quotaholder's name to quotaholder_app
In order to facilitate migrations.
astakos: Replace some explicit settings imports
importing setting names explicitly makes it hard to write tests thatdepend on specific setting values and polutes the module namespace.
In this commit only settings that are currently used in tests whererefactored.
Handle max pending applications as a quotable resource
Assume a resource `astakos.pending_app' related to service `astakos'.On submitting an application, issue a commission that will update therelated counter if possible, and accept the commission on success....
astakos: Standardize arguments of project calls
All calls take a request_user (of type AstakosUser) argument.
pep8 and style changes
astakos: Enroll in project even if request is pending
astakos: Move quota syncing code in quotas.py
Import resources from definition and config files
Register a service's resources giving option --json <file>.The json file is expected to represent a dictionary with keys"service" and "resources".
Currently the default base quota (uplimit) for each resource is read...
Cleanup obsolete quota code
Force query to list before passing as argument
An unevaluated query ends up being used as an argument of intended listtype to another query, which fails in the case of an EmptyQuerySet, whichis not iterable.
Move quota-related code out of models.py
Intention is to collect all quota-related code to a single file.
Sync to quotaholder by recomputing user quotas
On a user joining/leaving a project or on a project definition change,we used to compute quota diffs for affected users and add them upto existing values in quotaholder.
We now switch to recomputing all quotas for affected users and resetting...
wip Update astakos.im to use local quotaholder
Import directly quotaholder.callpoint in endpoint/qh.pyinstead of an HTTP client.Remove code related to entities, such as registering users and services.Remove sync_projects logic.
wip Remove check whether membership is pending sync
It is not needed any more, syncing to quotaholder will happenin a single transaction along with the call initiating the change.
wip New, simplified syncing to quotaholder
Merge branch 'feature-branding' of https://code.grnet.gr/git/synnefo into feature-branding
Merge branch 'tmp-common-email-recipients' into develop
Branding footer improvements (Astakos+ Cyclades)
Setting that allows copyright message to footer.Setting that allows about, feedback and support links to footer.
Astakos email notification improvements
- Use project setting SERVER_EMAIL as sender to all email notifications.- Remove astakos specific DEFAULT_CONTAC_EMAIL in favor of snf-common's CONTACT_EMAIL setting.- Remove DEFAULT_CONTACT_EMAIL and ADMINS astakos specific settings in favor of...