astakos: Remove unused lazy_string
webproject: Encoded stderr together with stdout
snf_django: Fix alignment in pprint_table command
Alignment was broken from new code that decoded table fields usinguser's encoding, since len() function will count length of bytes and notcharacters. This commit fixes by making pprint_table work only with...
snf_django: Fix unicode decoding in SynnefoCommand
Some options of snf-manage commands maybe list or tuples. Applying'smart_unicode' to them will convert them to unicode object. Insteadof recursively converting data, we convert the arguments to unicodes...
plankton: Handle a potential 500 error in plankton
snf_django: Fix typo
snf_django: Revert wrong change in exclude list
Revert way that 'exclude' is called, from commit #99955a0.
cyclades: s/BaseCommand/SynnefoCommand
Replace use of BaseCommand with SynnefoCommand which will convert thearguments/options to unicode objects.
snf_django: Handle unicodes in SynnefoCommand
Extend SynnefoCommand to override 'run_from_argv' function in orderto decode command line argumuents and options, using the user'spreferred encoding.
snf_django: Add utils function to handle unicodes
Add utils functions to handle unicode objects from 'snf-manage' usingthe user's preferred encoding. Also add 'safe_string' function toescape control characters from strings and unicode objects.
Replace use of 'udec' with 'smart_unicode'
plankton: Fix handling of HTTP headers
Handle properly image properties that are passed through HTTP headers.We convert the request headers to image properties by unquoting them andthen decoding them to Unicode objects using 'utf-8' encoding. Image keys...
snf_django: Replace uenc with smart_unicode
cyclades: Make all DB models return unicode repr
snf_django: Explicitly set encoding of requests
Explicitly set request encoding to UTF-8 instead of relyingDEFAULT_CHARSET setting. See:https://docs.djangoproject.com/en/1.4/ref/unicode/#form-submission
cyclades: Replace 'uenc' with 'smart_unicode'
Replace use of 'synnefo.util.text.uenc' function with'django.utils.encoding.smart_unicode'.
'uenc' function depends on the locale category LC_CTYPE, which is notappropriate for Cyclades API. We explicitly use 'smart_unicode' and...
stats: Replace uenc with smart_unicode
snf_django: Handle unicode errors in JSON bodies
Catch unicode errors when JSON deserializing the body of a request.Also, rename 'get_request_dict' function to 'get_json_body', as it is amore represenative name for what the function is doing.
snf-ci: Search all public networks
When creating a new floating IP try all public networksuntil we find one that is not full.
astakos: Fix states in project migration
Denying an application does not set the project deleted. It must still bevisible until the application is dismissed.
snf_django: Properly chain `exclude' queries
Although chained filters, e.g. filter(p1).filter(p2), can be summed up asfilter(p1, p2), this is not the case with exclude. If you want to excludethose selected by p1 as well as those selected by p2, you need...
astakos: Omit base projects by default in listing
Add option `--base-projects' to include base projects in the output ofproject-list management command.
cyclades: Fix list objects in enforce
Convert set back to list, because the code further down requires anindexable object.
docs: Regions, Zones, Clusters and VM mobility
Add a section in the Admin Guide documenting mobility and failuredomains: Regions, Zones, Clusters.
Remove keypath, use common dict operations instead
Replace get_path with dict indexing. Remove unused setting`CYCLADES_CUSTOMIZE_SERVICES' that used set_path. Remove the util/keypath.pymodule.
Replace set_path with defaultdict in quota handling
Revert "common: Do not encode key paths as string"
This reverts commit b10f66b9a20fb9dca0a56c88d5d224f1e3fa25ea.
ci: Don't install kamaki from wheezy repos
Install always the lates kamaki. This is needed because we may want toinstall a kamaki that supports new features but hasn't been release yet(i.e. isn't stable enough). Instead we upload it to the unstable repo.
ci: Remove one_node_squeeze
Synnefo doesn't support squeeze anymore.
pithos: Pep8 fixes
pithos: Restrict block uploading
Merge branch 'feature-pool-projects' into develop
Refs #5007 #5024
docs: Update project and quota API spec
Changelog for pool projects
Update admin guide for pool projects
burnin: Fix a bug in '_delete_floating_ips'
Renew the list of floating IP objects as it may have been changed(i.e. a port may have been deleted).
burnin: Change pylint disable-msg pragmas
'disable-msg' has been deprecated in favor of 'disable'.
burnin: Skip whole testsuite
Add functionality to allow burnin to skip a testsuite afterit has been started.
burnin: Add QuotasTestSuite
burnin: Rewrite check_quotas functionality
This patch enhances check_quotas functionality for better supportingprojects quotas.
snf-ci: Add 'shell' command
Test 'reassign_server' functionality
astakos: Do a PUT to modify project, not POST
Replace POST with PUT in the API call the modifies a project.
cyclades: Include project in server management commands
astakosclient: Update project calls to new scheme
Remove get application calls and set application_action to post to theproject endpoint.
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: Filter out not associated sources from user quota api response
return only resources that are related to projects the user has activemembership to.
astakos: Display both summed up and per project quota in usage view
snf_django: Fix select_related in ListCommand
Pass all related fields in a single call, because select_related does notchain as expected (yet). See https://code.djangoproject.com/ticket/16855
Also pass prefetch_related in a uniform way.
astakos: Make project-list a ListCommand
Use --filter-by to filter by owner and name.
Refs #5014
snf_django: Factor out resource reconcile
Generalize the checks operated during resource reconciliation so that theycan be used in all Synnefo components.
Adapt checks for user/project limits, include checks for project limits.
cyclades: Adapt resource reconciliation
Take projects into account when computing resource usage and comparingwith the quotaholder values.
pithos: Update reconcile-resources-pithos command
astakos: Adapt resource reconciliation
Assume base project when reconciling astakos resources.
burnin: Support the new quotas API
GetQuotas now returns a dictionary with the project's uuids as keys.This patch changes burnin to support that.
astakos: Fix project notification recipients
Notify applicant on an application action; notify project owner on projectactions if owner exists.
astakos: Disallow base project termination
Base projects accompany users and should not be arbitrarily terminated.
astakos: Add member mode in GET projects
Get only active projects where request user is an active member if mode isset to `member'.
astakos: Filter with GET params in project API
Pass GET options in project API calls as GET parameters rather than a jsonbody.
cyclades: Expose user and tenant ID of floating IPs
Include user_id and tenant_id in the API details of a floating IP.
astakos: Update tests
cyclades: Add field project in models
Add field `project' and initialize it to `userid' for all VMs, networks andfloating IPs. This means that all resources are assigned to the owner's baseproject.
astakosclient: Hide provision complexity
Both issue_one_commission and the new call issue_commission_generic actas wrappers on top of _issue_commission. They create the appropriateproject-level provisions, based on the original ones provided by theastakosclient user.
astakosclient: Support resource reassignment
Add issue_commission wrapper for assigning resources to a new project.
cyclades: Assign new resources to a project
Add optional parameter `project' in API calls that create VMs, networks,and floating IPs. If missing, user's base project is assumed (same uuidas the user).
cyclades: Inspect qh NotFound response
Since a user can now specify the project where a resource is assigned,user-provided data do reach the quotaholder. A NotFound response isthus not necessarily an internal error; the user may just not be amember of the input project. Query the quotaholder to find out whether...
astakos: Add command project-modify
Add a management command that directly modifies an initialized project.
quotaholder: Do not check provision integrity
The API is responsible to provide valid data to the backend.
quotaholder: Merge similar provisions
Make sure that issue_commission handles a single provision per (holder,source, resource) tuple by merging similar provisions.
cyclades: Reassign resources
Add API calls to assign a VM, network, or floating IP to a new project.
pithos: Add support for project originated quota
Introduce ``project`` container policy. The value of this policy denotesthe project from which the container quota originate.
cyclades: use project as tenant_id in API
cyclades: Update holdings in tests
pithos: Fix quota reporting during moves
Report quota change when moving across accounts or across containersassigned to different projects.
astakos: Refactor resource-modify
Remove interactive operations, rename default-quota to base-default.
astakos: Modify resource project default
Add support in resource-modify for changing the project_default.
astakos: Get service related project quota
Add API call for a service to request the project quota for its ownresources.
cyclades: Enforce quota per project
Take project into account when checking and enforcing quota violations. Addoption to restrict check to a certain 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: Improve printing in quota-verify
Also add option to delete project and user holdings that do not correspondto actual astakos entities.
astakos: Disable setting user base quota
Remove functionality from management commands `quota' and `user-modify'for setting base quota. They will now be handled through projects.
astakos: Adapt to new project/app scheme
astakos: Make ProjectResourceGrant fields non null
Field project_capacity now requires a value; field project_applicationwas mistakenly set nullable.
astakos: Introduce base projects
Every user is associated with a special-purpose `base' project. Itsmission is to manage the user's base quota.
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).
quotaholder: Migrate holdings for pool projects
Recreate quota holdings for all initialized projects and memberships.
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: Typo fix
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.
docs: New project design wrt applications
common: Do not encode key paths as string
Handle explicitly key paths as lists of keys. This allows the keyto be any python object, as is the case in python dicts.
Provide utility unpack() to convert from a string representation toa list of keys. It assumes that a key is either a string or an integer...