History | View | Annotate | Download (33.2 kB)
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: 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...
Impose pending application limit on owner
We used to check the limit on applicant; however we would like toto control pending applications per the original applicant, i.e theowner. The check is ignored when the applicant is a project admin.
Log project actions
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
Astakos logging improvements
use the common user_log display method accross logging calls
Astakos logging fixes
Removed with_logging wrapper which inconsistently extracted user/requestarguments. Logging statements placed explicitly within login/logoutmethods.
Fix admin notification logging
Optimize computation of astakos user quotas
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.
Bug fixing
Create membership without causing DB error on existence
Make ForUpdateManager thread-safe
The manager held a global flag `_for_update' on a single manager object,which could be read or set by multiple threads.
select_for_update() is now provided by a subclass of QuerySet.It must be used as the last modifier of a query set,...
Update email change email content
- Include EmailChange instance in template context- Email body improvements