Statistics
| Branch: | Tag: | Revision:

root @ a6d167c1

# Date Author Comment
a6d167c1 02/26/2014 06:03 pm Giorgos Korfiatis

astakos: Use SynnefoCommand to handle unicode

Replace BaseCommand with SynnefoCommand in mngt commands. The latter
properly handles unicode strings.

18304586 02/26/2014 05:53 pm Giorgos Korfiatis

astakos: Replace str with unicode

Define unicode in astakos models rather than str.

9a94c0f1 02/26/2014 05:53 pm Giorgos Korfiatis

astakos: Remove unused lazy_string

d1c9cf66 02/26/2014 12:57 pm Christos Stavrakakis

webproject: Encoded stderr together with stdout

4267cb32 02/26/2014 12:43 pm Christos Stavrakakis

snf_django: Fix alignment in pprint_table command

Alignment was broken from new code that decoded table fields using
user's encoding, since len() function will count length of bytes and not
characters. This commit fixes by making pprint_table work only with...

857f8a2f 02/25/2014 05:58 pm Christos Stavrakakis

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. Instead
of recursively converting data, we convert the arguments to unicodes...

4e571185 02/25/2014 03:01 pm Dionysis Grigoropoulos

plankton: Handle a potential 500 error in plankton

  • Catch a potential 500 error, when registering a file as an Image, while
    trying to decode "Image name" into unicode.
  • Add corresponding test case
51e5aa11 02/24/2014 02:12 pm Christos Stavrakakis

snf_django: Fix typo

1ed138e8 02/24/2014 01:41 pm Christos Stavrakakis

snf_django: Revert wrong change in exclude list

Revert way that 'exclude' is called, from commit #99955a0.

8c911970 02/24/2014 01:14 pm Christos Stavrakakis

cyclades: s/BaseCommand/SynnefoCommand

Replace use of BaseCommand with SynnefoCommand which will convert the
arguments/options to unicode objects.

99955a02 02/24/2014 01:07 pm Christos Stavrakakis

snf_django: Handle unicodes in SynnefoCommand

Extend SynnefoCommand to override 'run_from_argv' function in order
to decode command line argumuents and options, using the user's
preferred encoding.

91c788ec 02/24/2014 01:05 pm Christos Stavrakakis

snf_django: Add utils function to handle unicodes

Add utils functions to handle unicode objects from 'snf-manage' using
the user's preferred encoding. Also add 'safe_string' function to
escape control characters from strings and unicode objects.

2e90e666 02/24/2014 12:49 pm Christos Stavrakakis

Replace use of 'udec' with 'smart_unicode'

a4e9c19c 02/21/2014 04:11 pm Christos Stavrakakis

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 and
then decoding them to Unicode objects using 'utf-8' encoding. Image keys...

01c660b6 02/21/2014 04:07 pm Christos Stavrakakis

snf_django: Replace uenc with smart_unicode

f259c6d9 02/21/2014 04:07 pm Christos Stavrakakis

cyclades: Make all DB models return unicode repr

c4e22972 02/21/2014 04:05 pm Christos Stavrakakis

snf_django: Explicitly set encoding of requests

Explicitly set request encoding to UTF-8 instead of relying
DEFAULT_CHARSET setting. See:
https://docs.djangoproject.com/en/1.4/ref/unicode/#form-submission

df455d57 02/21/2014 04:05 pm Christos Stavrakakis

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 not
appropriate for Cyclades API. We explicitly use 'smart_unicode' and...

9ff114c3 02/21/2014 04:05 pm Christos Stavrakakis

stats: Replace uenc with smart_unicode

5a6cee09 02/21/2014 04:05 pm Christos Stavrakakis

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 a
more represenative name for what the function is doing.

49fb00cc 02/21/2014 04:05 pm Ilias Tsitsimpis

snf-ci: Search all public networks

When creating a new floating IP try all public networks
until we find one that is not full.

dd759d76 02/20/2014 04:41 pm Giorgos Korfiatis

astakos: Fix states in project migration

Denying an application does not set the project deleted. It must still be
visible until the application is dismissed.

c8922d01 02/20/2014 04:41 pm Giorgos Korfiatis

snf_django: Properly chain `exclude' queries

Although chained filters, e.g. filter(p1).filter(p2), can be summed up as
filter(p1, p2), this is not the case with exclude. If you want to exclude
those selected by p1 as well as those selected by p2, you need...

c2a78208 02/20/2014 04:41 pm Giorgos Korfiatis

astakos: Omit base projects by default in listing

Add option `--base-projects' to include base projects in the output of
project-list management command.

f3bdab04 02/20/2014 04:41 pm Giorgos Korfiatis

cyclades: Fix list objects in enforce

Convert set back to list, because the code further down requires an
indexable object.

60c6bb5e 02/20/2014 01:20 pm Constantinos Venetsanopoulos

docs: Regions, Zones, Clusters and VM mobility

Add a section in the Admin Guide documenting mobility and failure
domains: Regions, Zones, Clusters.

9c6d629f 02/19/2014 06:19 pm Giorgos Korfiatis

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.py
module.

dfc7aab7 02/19/2014 06:19 pm Giorgos Korfiatis

Replace set_path with defaultdict in quota handling

2a811e37 02/19/2014 06:19 pm Giorgos Korfiatis

Revert "common: Do not encode key paths as string"

This reverts commit b10f66b9a20fb9dca0a56c88d5d224f1e3fa25ea.

7b4487a0 02/18/2014 04:17 pm Ilias Tsitsimpis

ci: Don't install kamaki from wheezy repos

Install always the lates kamaki. This is needed because we may want to
install 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.

f4192236 02/18/2014 04:17 pm Ilias Tsitsimpis

ci: Remove one_node_squeeze

Synnefo doesn't support squeeze anymore.

bdb44fda 02/17/2014 01:35 pm Sofia Papagiannaki

pithos: Pep8 fixes

2560c061 02/17/2014 12:36 pm Sofia Papagiannaki

pithos: Restrict block uploading

40f1f336 02/13/2014 04:23 pm Giorgos Korfiatis

Merge branch 'feature-pool-projects' into develop

Refs #5007 #5024

0f2bd3f9 02/13/2014 04:20 pm Giorgos Korfiatis

docs: Update project and quota API spec

ef5d2c1c 02/13/2014 04:20 pm Giorgos Korfiatis

Changelog for pool projects

f3456fc8 02/13/2014 04:20 pm Giorgos Korfiatis

Update admin guide for pool projects

4cf2178f 02/13/2014 04:20 pm Ilias Tsitsimpis

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).

9355a604 02/13/2014 04:20 pm Ilias Tsitsimpis

burnin: Change pylint disable-msg pragmas

'disable-msg' has been deprecated in favor of 'disable'.

d0bb677f 02/13/2014 04:20 pm Ilias Tsitsimpis

burnin: Skip whole testsuite

Add functionality to allow burnin to skip a testsuite after
it has been started.

a6e5a05f 02/13/2014 04:20 pm Ilias Tsitsimpis

burnin: Add QuotasTestSuite

c2f037ff 02/13/2014 04:20 pm Ilias Tsitsimpis

burnin: Rewrite check_quotas functionality

This patch enhances check_quotas functionality for better supporting
projects quotas.

2eb2f223 02/13/2014 04:20 pm Ilias Tsitsimpis

snf-ci: Add 'shell' command

411cbbf4 02/13/2014 04:20 pm Ilias Tsitsimpis

Test 'reassign_server' functionality

d9fca80b 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Do a PUT to modify project, not POST

Replace POST with PUT in the API call the modifies a project.

a6a70f40 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: Include project in server management commands

4334d1c8 02/13/2014 04:20 pm Giorgos Korfiatis

astakosclient: Update project calls to new scheme

Remove get application calls and set application_action to post to the
project endpoint.

9efd0075 02/13/2014 04:20 pm Kostas Papadimitriou

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

8735e44e 02/13/2014 04:20 pm Kostas Papadimitriou

astakos: Filter out not associated sources from user quota api response

return only resources that are related to projects the user has active
membership to.

4df9dfc9 02/13/2014 04:20 pm Kostas Papadimitriou

astakos: Display both summed up and per project quota in usage view

787f7372 02/13/2014 04:20 pm Giorgos Korfiatis

snf_django: Fix select_related in ListCommand

Pass all related fields in a single call, because select_related does not
chain as expected (yet). See https://code.djangoproject.com/ticket/16855

Also pass prefetch_related in a uniform way.

0de7c5a7 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Make project-list a ListCommand

Use --filter-by to filter by owner and name.

Refs #5014

b1f6aea8 02/13/2014 04:20 pm Giorgos Korfiatis

snf_django: Factor out resource reconcile

Generalize the checks operated during resource reconciliation so that they
can be used in all Synnefo components.

Adapt checks for user/project limits, include checks for project limits.

2e2fc330 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: Adapt resource reconciliation

Take projects into account when computing resource usage and comparing
with the quotaholder values.

eb83c485 02/13/2014 04:20 pm Sofia Papagiannaki

pithos: Update reconcile-resources-pithos command

f8cac8c7 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Adapt resource reconciliation

Assume base project when reconciling astakos resources.

87a86b71 02/13/2014 04:20 pm Ilias Tsitsimpis

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.

9202a57d 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Fix project notification recipients

Notify applicant on an application action; notify project owner on project
actions if owner exists.

6debe235 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Disallow base project termination

Base projects accompany users and should not be arbitrarily terminated.

edc51a21 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Add member mode in GET projects

Get only active projects where request user is an active member if mode is
set to `member'.

a1ff970b 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Filter with GET params in project API

Pass GET options in project API calls as GET parameters rather than a json
body.

02353a1a 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: Expose user and tenant ID of floating IPs

Include user_id and tenant_id in the API details of a floating IP.

2070c5f8 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Update tests

b5780d85 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: Add field project in models

Add field `project' and initialize it to `userid' for all VMs, networks and
floating IPs. This means that all resources are assigned to the owner's base
project.

da9bcceb 02/13/2014 04:20 pm Giorgos Korfiatis

astakosclient: Hide provision complexity

Both issue_one_commission and the new call issue_commission_generic act
as wrappers on top of _issue_commission. They create the appropriate
project-level provisions, based on the original ones provided by the
astakosclient user.

1f4a46dd 02/13/2014 04:20 pm Giorgos Korfiatis

astakosclient: Support resource reassignment

Add issue_commission wrapper for assigning resources to a new project.

47c27955 02/13/2014 04:20 pm Giorgos Korfiatis

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 uuid
as the user).

13f1e2ff 02/13/2014 04:20 pm Giorgos Korfiatis

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 is
thus not necessarily an internal error; the user may just not be a
member of the input project. Query the quotaholder to find out whether...

5dc97d69 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Add command project-modify

Add a management command that directly modifies an initialized project.

fe4000a3 02/13/2014 04:20 pm Giorgos Korfiatis

quotaholder: Do not check provision integrity

The API is responsible to provide valid data to the backend.

daa780fa 02/13/2014 04:20 pm Giorgos Korfiatis

quotaholder: Merge similar provisions

Make sure that issue_commission handles a single provision per (holder,
source, resource) tuple by merging similar provisions.

99667854 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: Reassign resources

Add API calls to assign a VM, network, or floating IP to a new project.

78e1f8da 02/13/2014 04:20 pm Sofia Papagiannaki

pithos: Add support for project originated quota

Introduce ``project`` container policy. The value of this policy denotes
the project from which the container quota originate.

Further changes:
  • domain argument in get_{account|container|object}_meta backend methods...
70c51e5d 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: use project as tenant_id in API

7bc909c7 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: Update holdings in tests

e492238f 02/13/2014 04:20 pm Giorgos Korfiatis

pithos: Fix quota reporting during moves

Report quota change when moving across accounts or across containers
assigned to different projects.

bf644f91 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Refactor resource-modify

Remove interactive operations, rename default-quota to base-default.

ba8c50e5 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Modify resource project default

Add support in resource-modify for changing the project_default.

dccd7fa0 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Get service related project quota

Add API call for a service to request the project quota for its own
resources.

f600b74e 02/13/2014 04:20 pm Giorgos Korfiatis

cyclades: Enforce quota per project

Take project into account when checking and enforcing quota violations. Add
option to restrict check to a certain project.

a53ec93b 02/13/2014 04:20 pm Giorgos Korfiatis

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; locking
the project is now adequate.

Update quota listing in management commands; introduce option --quota in...

44d950c6 02/13/2014 04:20 pm Giorgos Korfiatis

astakos: Improve printing in quota-verify

Also add option to delete project and user holdings that do not correspond
to actual astakos entities.

64a43a9a 02/13/2014 04:20 pm Giorgos Korfiatis

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.

362dadaa 02/13/2014 03:19 pm Giorgos Korfiatis

astakos: Adapt to new project/app scheme

c3763b39 02/13/2014 03:19 pm Giorgos Korfiatis

astakos: Make ProjectResourceGrant fields non null

Field project_capacity now requires a value; field project_application
was mistakenly set nullable.

2c1a5a15 02/13/2014 03:19 pm Giorgos Korfiatis

astakos: Introduce base projects

Every user is associated with a special-purpose `base' project. Its
mission is to manage the user's base quota.

2c960473 02/13/2014 03:19 pm Giorgos Korfiatis

astakos: Make base project when creating user

Make base project along with the user with the same uuid. Enable the
project upon user acceptance.

d1c95ad9 02/13/2014 03:19 pm Giorgos Korfiatis

astakos: Mark project membership as initialized

Add flag `initialized' on ProjectMembership. It is set to true once a user
is accepted. It is used to distinguish users that have registered
project quota (but may have been removed since then).

508e13e3 02/13/2014 03:19 pm Giorgos Korfiatis

quotaholder: Migrate holdings for pool projects

Recreate quota holdings for all initialized projects and memberships.

552df4cd 02/12/2014 06:48 pm Giorgos Korfiatis

astakos: Fill grants' project_capacity

Each resource grant that a project provides is now also associated with
a project-level limit. This is set by consulting the existing user-level
limit and the max members allowed. If the latter limit is not set, we
consider the project's current number of active members.

5e3c112a 02/12/2014 06:48 pm Giorgos Korfiatis

astakos: Add project default in resources

Add field `project_default' in resources. This will serve as a skeleton to
fill project quota (both project-level and member-level limits) for
resources not specified by the application.

The field is initialized by consulting the default base quota (field...

8af74daf 02/12/2014 06:48 pm Giorgos Korfiatis

astakos: Make limit_on_members_number a bigint

We need bigint in order to represent infinite as 2**63-1.

11922155 02/12/2014 06:48 pm Giorgos Korfiatis

astakos: Replace application None values

None will from now on denote a missing field of the application. Use empty
string for missing string and the conventional max int (2**63-1) for a
missing limit.

2ffe077d 02/12/2014 06:48 pm Giorgos Korfiatis

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.

88f5242e 02/12/2014 06:47 pm Giorgos Korfiatis

astakos: Identify projects with a uuid

Introduce field `uuid'; use it to refer to projects in the API and the
management commands.

9255938e 02/10/2014 02:40 pm Kostas Papadimitriou

astakos: Typo fix

7f3bbafa 02/10/2014 02:40 pm Giorgos Korfiatis

astakos: Reduce import clutter in functions.py

84498bca 02/10/2014 02:40 pm Giorgos Korfiatis

astakos: Refactor notification code

Introduce generic notify functions that consult a dict for a given action.

74c9dfca 02/10/2014 02:40 pm Giorgos Korfiatis

astakos: Remove unneeded argument

62d30634 02/10/2014 02:40 pm Giorgos Korfiatis

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.