Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo @ bfd04b01

# Date Author Comment
bfd04b01 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Include 'index' when comparing NICs

443315d6 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Add 'ip_type' attribute to NIC

Extend NetworkInterface model with the 'ip_type' attribute to show
whether the IP is a floating or fixed.

Signed-off-by: Christos Stavrakakis <>

a1baa42b 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Use UUIDs to update VM NICs

Callback functions of snf-dispatcher updated the NICs of a VM by
deleting all NICs from DB, and creating the new NICs that were described
in the message. However, since NICs have UUIDs, this is no longer
required. This commit update callbacks to update the NICs based on their...

e6fbada1 10/09/2013 11:40 am Christos Stavrakakis

gtools: Make eventd send job fields

Make snf-ganeti-eventd send 'job_fields' for instance and network
opcodes, and modify the corresponding backend functions and
snf-dispatcher callbacks.

3c52a9df 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Fix getting action from Ganeti opcode

Parse the fields of the Ganeti command, to distinquish between
'CONNECT' and 'DISCONNECT' in case of 'OP_INSTANCE_SET_PARAMS'.

d7ff7f5a 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Make reconciliation timeouts constants

Remove hard-coded timeouts from code and make them constants. Also do
not perform reconciliation for recent building NICs.

cd7ed999 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Use NIC uuid when deleting NIC

7c714455 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Use Ganeti NIC UUIDs

Since Ganeti 2.8, it is supported to refer to devices (NICs and Disks)
not only by their index but also by their name or UUID. This commit
updates Synnefo to refer to devices by their name. Synnefo will set the
name of the devices which will be a UUID. We do not use Ganeti's UUIDs...

a9bb2a1a 10/09/2013 11:40 am Christos Stavrakakis

Fix compatibility issues with ganeti-2.7

  • SimpleConfigReader has been removed. Use SimpleStore
  • QUEUE_DIR has been moven from ganeti.constants to ganeti.pathutils
  • _QueuedJob.Restore takes 2 more arguments
  • Group info is returned as list instead of string
e9d59f5e 10/09/2013 11:40 am Christos Stavrakakis

Use opportunistic locking

Use opportunistic locking, introduced in Ganeti 2.7, to allow parallel creation
of VMs in the Ganeti backend. When this option is set, Ganeti iallocator
will allocate the VM only to nodes that not locked (e.g. by other VM
creation). This may result in unbalanced clusters, but `hbal` can be...

bc37fa88 10/09/2013 11:40 am Dimitris Aragiorgis

Remove deprecated network type in ganeti

Signed-off-by: Dimitris Aragiorgis <>

700b85be 10/09/2013 11:40 am Dimitris Aragiorgis

Pass network type info in tags during create

Signed-off-by: Dimitris Aragiorgis <>

89e92ee5 10/09/2013 11:40 am Dimitris Aragiorgis

Remove hotplug from InstanceCreate

Signed-off-by: Dimitris Aragiorgis <>

1d74f135 10/09/2013 11:40 am Dimitris Aragiorgis

New style format for modifying a NIC

Signed-off-by: Dimitris Aragiorgis <>

457cc553 10/09/2013 11:40 am Christos Stavrakakis

cyclades: fix typo in snf-dispatcher

c4ed6248 10/09/2013 11:39 am Christos Stavrakakis

cyclades: Fix bug in floating IP test

98a01362 10/09/2013 11:29 am Christos Stavrakakis

cyclades: Fix bug for externally reserved IPs

Skip check if there are no externally reserved IPs in the Ganeti
backend.

5b90c56d 10/07/2013 05:52 pm Kostas Papadimitriou

ui: Reboot required notification in networks view

828f802d 10/07/2013 05:52 pm Kostas Papadimitriou

ui: Exclude rebooting machines from network connect overlay

fc56ae0f 10/07/2013 02:50 pm Christos Stavrakakis

cyclades: Do not release externally reserved IPs

Do not automatically release an externally reserved IP if it is released
from a Ganeti backend. The IP should be released with snf-manage
network-modify management commands.

2a2f9ffa 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Refactor network-modify command

Refactor snf-manage network-modify command. Remove options that modified
link, mac_prefix, mode, enable_dhcp or state of the network. This
options modified only the network in DB and resulted in incosistencies
between Cyclades DB and Ganeti.

df8a7015 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Make (network, ipv4) unique for each NIC

Add a unique constraint to NetworkInterface model. This constraint
asserts that the same IPv4 address from the same network will no be
assigned to more than one NICs.

0ccb6461 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Refactor reconciliation of pools

Move reconciliation of IP pools from 'snf-manage reconcile-networks'
to 'snf-manage reconcile-pools'. Also change the way reconciliation
works: Instead of reconciling the IP pools in DB with the IP pools in
Ganeti, the new reconciliation just checks that:...

d793786b 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Fix str representation for pool objects

a52cc1b4 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Refactor code for renaming a server

Created function for renaming a server.

91f7a08c 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Fix server-modify management command

  • Change --set-suspended and --unsuspended to --suspended=True|False
  • Removed --set-deleted as snf-manage server-remove can be used.
  • Removed option for modifying the state of a server.
60a71437 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Resize server from management command

Add the --flavor option in server-modify management command to resize a
server to a different flavor.

35f2fc07 10/07/2013 02:37 pm Christos Stavrakakis

cyclades: Add --action option in server-modify cmd

Add --action option in server modify command, to start, stop or reboot
an instance.

5d1f6b84 10/07/2013 12:48 pm Christos Stavrakakis

cyclades: Fix bug in backend_allocator

The 'disk_template' attribute for flavors of external disk template
included the name of the provider. The backend allocator tried to find a
backend with an enabled 'ext_$(provider)' disk template. This commit
fixes this by searching only for 'ext' in the enabled disk templates.

7da2d1bd 10/03/2013 02:45 pm Christos Stavrakakis

cyclades: Add missing migration for commit 3bb0b11

c3c8297e 10/03/2013 11:19 am Christos Stavrakakis

cyclades: Add 'server-remove' management command

Implement server-remove management command that deletes an instance from
a Ganeti backend. The command will wait by default for the
OP_INSTANCE_REMOVE job to complete, except if --wait=False is used.

3bb0b117 10/02/2013 04:27 pm Christos Stavrakakis

cyclades: Add 'on_delete' to all ForeignKeys

Add 'on_delete' argument to all ForeignKeys. The value of this
argument depends on the type of each relation.

73756651 10/02/2013 04:05 pm Christos Stavrakakis

cyclades: Fix bug in update_cluster callback

Decorate 'update_cluster' callback with 'handle_message_delivery' to
handle acknowledgement of messages.

2c21381e 10/02/2013 04:05 pm Christos Stavrakakis

cyclades: Remove custom ForUpdateManager

Remove custom manager that implemented select_for_update(), since this
is already implemented in Django 1.4.

26515bc1 10/02/2013 04:05 pm Christos Stavrakakis

cyclades: Remove custom ProtectedDeletedManager

Remove custom ProtectedDeletedManager. Instead use the
ForeignKey.on_delete attribute that has been introduced in Django 1.4.

5feb9900 10/01/2013 09:16 pm Christos Stavrakakis

cyclades: Add missing queue

QUEUE_CLUSTER must be included in QUEUES.

a8ae6989 10/01/2013 08:27 pm Christos Stavrakakis

cyclades: Make disk_templates work with Ganeti<2.8

'enabled_disk_templates' cluster attribute has been added in Ganeti 2.8.
If this attribute is missing, return the ipolicy disk templates.

e4011adc 10/01/2013 08:06 pm Christos Stavrakakis

cyclades: Fix typo

c3362463 10/01/2013 07:44 pm Christos Stavrakakis

cyclades: Fix bug in custom field

Rename get_db_prep_value to get_prep_value. In django 1.4 the second one
is just a wrapper for the first one.

6b256427 10/01/2013 06:56 pm Christos Stavrakakis

Request Django=>1.4, <1.5

Drop support for Django 1.2. Remove compatibility code that were used in
order to support Django 1.2 and 1.4. Finally update django documentation
link in the docs.

b694875c 10/01/2013 06:56 pm Christos Stavrakakis

wheezy: Rename depricated HttpRequest attribute

From django docs:
"""
HttpRequest.raw_post_data renamed to HttpRequest.body

This attribute was confusingly named HttpRequest.raw_post_data, but it
actually provided the body of the HTTP request. It’s been renamed to...

00c7a496 10/01/2013 06:56 pm Christos Stavrakakis

wheezy: fix is_safe attribute of template filters

In Django 1.4 'is_safe' and 'needs_autoescape' attributes has been made
keyword arguments of @register.filter

0a70d2c5 10/01/2013 06:16 pm Christos Stavrakakis

Merge branch 'hotfix-0.14.8' into develop

Merge hotfix-0.14.8 which ports Synnefo to wheezy and Django 1.4.5

Conflicts:
ci/ci_squeeze.conf
ci/ci_wheezy.conf
ci/schemas/one_node_squeeze/packages.conf
ci/schemas/one_node_squeeze/squeeze.conf
ci/schemas/one_node_squeeze/wheezy.conf...

36d450e8 10/01/2013 05:45 pm Christos Stavrakakis

cyclades: Callback for cluster modifications

Extend snf-dispatcher callbacks with one to run every time an
OP_CLUSTER_ opcode is executed in a Ganeti backend.

  • make snf-ganeti-eventd send messages on cluster modifications. These
    messages do not contain any description about the job....
1da50fe3 10/01/2013 11:37 am Christos Stavrakakis

cyclades: Refactor backend-update-status cmd

The command has been changed to no longer take any arguments or options.
Instead, this command always updates the resources and the enabled disk
templates of all online Ganeti backends.

f15bf3d9 10/01/2013 11:37 am Christos Stavrakakis

Allocate VMs based on enabled disk-templates

Remove the ARCHIPELAGO_BACKENDS setting. Instead allocate VMs based on
the disk-templates that are enabled and allowed in ipolicy for each
backend. The command 'snf-manage backend-update-status' can be used to...

b704b537 10/01/2013 11:37 am Christos Stavrakakis

cyclades: Display disk-templates in backend-list

c9976c84 10/01/2013 11:37 am Christos Stavrakakis

cyclades: Extend Backend model with disk_templates

Extend 'Backend' models with 'disk_template' attribute, that contains
the list of disk templates that are available in each backend.

54975d37 10/01/2013 11:31 am Christos Stavrakakis

cyclades: Add SeparatedValuesList field

Add custom field for storing a list of values in DB. The values
are stored as a TextField separated by a delimiter.

8299ef23 09/27/2013 04:50 pm Christos Stavrakakis

Revert "wheezy: Rename depricated HttpRequest attribute"

This reverts commit cfc4b87c301504627e6a75ab2e4d32c8cd7a6e15. This
commit is reverted because it breaks compatibility with Django 1.2. This
should be applied for Synnefo 0.15.

4a021fd1 09/27/2013 04:50 pm Christos Stavrakakis

Revert "wheezy: fix is_safe attribute of template filters"

This reverts commit 730fb3b0a0607bba95b90db1c6154cb7febb9187. This
commit is reverted because it breaks compatibility with Django 1.2. This
should be applied for Synnefo 0.15.

27724645 09/27/2013 04:50 pm Christos Stavrakakis

Revert "wheezy: Remove setup_environ"

This reverts commit a813a25117f3db14d5517f630d6d0e163a58b0f8. This
commit is reverted because it breaks compatibility with Django 1.2. This
should be applied for Synnefo 0.15.

68d7a31d 09/27/2013 04:34 pm Christos Stavrakakis

reconciliation: Strip Ganeti IP addresses

Strip spaces from Ganeti IP addresses, since they are not automatically
ignored in newer versions of ipaddr.

cfc4b87c 09/27/2013 03:22 pm Christos Stavrakakis

wheezy: Rename depricated HttpRequest attribute

From django docs:
"""
HttpRequest.raw_post_data renamed to HttpRequest.body

This attribute was confusingly named HttpRequest.raw_post_data, but it
actually provided the body of the HTTP request. It’s been renamed to...

730fb3b0 09/27/2013 03:22 pm Christos Stavrakakis

wheezy: fix is_safe attribute of template filters

In Django 1.4 'is_safe' and 'needs_autoescape' attributes has been made
keyword arguments of @register.filter

a813a251 09/27/2013 03:22 pm Christos Stavrakakis

wheezy: Remove setup_environ

From Django docs:
"""
This function temporarily modified sys.path in order to make the parent
“project” directory importable under the old flat startproject layout.
This function is now deprecated, as its path workarounds are no longer...

e5e62972 09/27/2013 12:38 pm Giorgos Korfiatis

cyclades: Return the newest vm object upon creation

The server_command decorator commits the just created object and retrieves
it back from the database. Return the latter, because the former is stale
in memory.

a1d0f147 09/27/2013 10:49 am Christos Stavrakakis

cyclades: Remove commit_manually decorator

Replace commit_manually decorator with commit_on_success. Since network
is no longer created in DB in the API request, the manually decorator is
no longer needed.

eb99b367 09/25/2013 12:40 am Christos Stavrakakis

wheezy: Temporary disable reconciliation tests

Temporary disable reconciliation tests because they still run with
fixture data, that are not loaded correctly.

a6b17d33 09/24/2013 05:16 pm Christos Stavrakakis

wheezy: urls module doesn't export defaults

2c6ac437 09/24/2013 12:30 pm Christos Stavrakakis

Fix missing import and broken test

88fd91af 09/20/2013 03:46 pm Christos Stavrakakis

cyclades: Fix wrong quotas when creating server

Catch exception when talking to Ganeti inside 'server_command',
otherwise the pending commission will be rejected. Also, accept the
commission in case of build, because the VM will be created in DB.

5c8076b6 09/20/2013 01:45 pm Christos Stavrakakis

cyclades: Helper function for commissioning

Create 'quotas.handle_resource_commission' function for handling
commissions for VMs and Networks.

9dcfad23 09/20/2013 01:45 pm Christos Stavrakakis

cyclades: Handle errors during vm creation

Commit #f2080d1 mocked an OP_INSTANCE_REMOVE when enqueuing an
OP_INSTANCE_CREATE job to Ganeti failed. However, this may result in
releasing IPs that may get reserved in Ganeti, because we can never
really know if the job has reached Ganeti or not (e.g. timeout). For...

874383a4 09/20/2013 01:45 pm Christos Stavrakakis

cyclades: Add missing commit_on_success decorator

bb649089 09/19/2013 08:07 pm Christos Stavrakakis

cyclades: Add quotas for build server action

562bf712 09/19/2013 07:50 pm Christos Stavrakakis

cyclades: refactor server creation command

Split the server creation command in more steps in order to be
decorated with the 'server_command' function and follow the logic of all
other server commands. The main change is that the commission job is not
accepted when the VM is stored in DB, but when the OP_INSTANCE_CREATE...

8e67ea28 09/18/2013 06:22 pm Christos Stavrakakis

cyclades: Apply old commits to moved files

Code from file 'api/servers.py' has been moved to 'logic/servers.py'.
During the merge of hotfix-0.14.6 the develop, this code was lost. This
commit applies commits #f2080d1, #ea9b0fb, #32a0b85 to the new file.

952f19b8 09/18/2013 06:04 pm Christos Stavrakakis

Merge branch 'master' into develop

Conflicts:
Changelog
version

05485332 09/18/2013 05:35 pm Kostas Papadimitriou

helpdesk: Fix network interface queryset

ed2064f8 09/18/2013 05:17 pm Christos Stavrakakis

Merge branch 'hotfix-0.14.6' into develop

Conflicts:
Changelog
docs/admin-guide.rst
snf-cyclades-app/synnefo/api/management/commands/network-remove.py
snf-cyclades-app/synnefo/api/servers.py
snf-cyclades-app/synnefo/api/tests/servers.py
snf-cyclades-app/synnefo/logic/backend.py...

232763df 09/17/2013 04:23 pm Kostas Papadimitriou

helpdesk: Exclude nics of deleted vms

when helpdesk users search using ip address

f2080d16 09/17/2013 02:33 pm Christos Stavrakakis

cyclades: Mock vm removal if creation fails

In case creating a VM fails before the OP_INSTANCE_CREATE job is
enqueued in Ganeti, the VM and its NICs must be deleted, and the
resources must be released from Quotaholder, which is exactly what is
done when a VM is deleted from Ganeti. Instead of duplicating the code,...

ea9b0fb9 09/17/2013 01:26 pm Christos Stavrakakis

cyclades: Fix bug during server creation

Commit #32a0b85, modified server creation, by refetching the object from
DB after issuing commission to quotaholder. However, the new object is
not having the 'config_url' attributed, which is added to the vm object...

b4135a1b 09/17/2013 10:46 am Christos Stavrakakis

cyclades: Make GanetiRapiClient work with gevent

GanetiRapiClient uses PyCurl, a Python interface to libcurl, and
performs blocking requests, so does not work well with gevent. This
commit makes GanetiRapiClient to use 'Requests' HTTP library that is
greenlet-safe.

4772cff2 09/16/2013 05:26 pm Kostas Papadimitriou

Merge branch 'feature-ui-footer-extra-message' into hotfix-0.14.6

bdb4641c 09/16/2013 02:53 pm Giorgos Korfiatis

cyclades: Fix unbound reference

Set backend to None if not specified.

9ab3c6a3 09/16/2013 10:18 am Olga Brani

branding: new setting FOOTER_EXTRA_MESSAGE

FOOTER_EXTRA_MESSAGE setting appears above Copyright message at the
Compute templates and the Dashboard UI. Accepts html tags.

25891abc 09/13/2013 04:37 pm Christos Stavrakakis

cyclades: Simplify code

Simplify code by removing unnecessary temp variable.

db3037f1 09/12/2013 06:29 pm Giorgos Korfiatis

cyclades: Do not release resources if already deleted

Ensure that a commission to release vm resources is issued only once.
If a vm is marked `deleted', then resources must have already been
released.

32a0b855 09/12/2013 06:29 pm Giorgos Korfiatis

cyclades: Do not save stale objects after a commit

Call to issue_and_accept_commission saves the resource object (eg a vm)
and commits the transaction. This has the side-effect that the resource
object becomes stale: its lock is released and another thread may acquire...

347b2ba1 09/12/2013 06:26 pm Giorgos Korfiatis

common: Strip trailing slash from endpoints

Remove trailing slash from the endpoints' publicURL field in service
definitions. These values end up in the response of POST /tokens, and,
according to the keystone API, should not end in slash. A trailing slash...

a8333def 09/11/2013 05:06 pm Christos Stavrakakis

cyclades: Add newline

4111c53e 09/10/2013 03:29 pm Christos Stavrakakis

cyclades: fix typos

90858bda 09/10/2013 03:29 pm Christos Stavrakakis

cyclades: Update NICs even if job failed

Make snf-ganeti-eventd send the NICs of the instance not only on
success, but also if the job has failed or has been canceled. Also,
update snf-dispatcher to handle those messages. This step is required to
clear BUILDING NICs that fail.

c9fefba3 09/10/2013 03:29 pm Christos Stavrakakis

cyclades: Store action to the VM

1464a17b 09/10/2013 03:29 pm Christos Stavrakakis

cyclades: Fix bug in reconciliation

VMs at building error that do not exist in Ganeti must not be reported
as stale. The VM is stale only if the user has asked to destroy the VM,
and so the action is DESTROY.

051e47f8 09/10/2013 03:29 pm Christos Stavrakakis

cyclades: Make index field of NIC optional

Change 'index' field of NIC model to be optional, because the index of
building NICs is unknown. Also, change all API responses to return only
the active NICs.

2a2b01e5 09/10/2013 03:29 pm Christos Stavrakakis

cyclades: Create NIC before send job to Ganeti

Create NICs in building state before enqueuing corresponding jobs to
Ganeti. This has already been done when creating the instance, but not
when connecting it to other networks.

198d91c3 09/06/2013 12:22 pm Christos Stavrakakis

cyclades: Fix bug in snf-dispatcher logic

This commit reverts commits #07602322 and #30514662 which introduced a
bug in dispatcher's logic. These commit fixed the issue that, in a case
the Cyclades DB is unsynced with Ganeti, a resource that does not exist...

49044e69 08/30/2013 12:01 pm Christos Stavrakakis

Move context_processors from common to middleware

bbae3e45 08/28/2013 01:55 pm Christos Stavrakakis

cyclades: Fix bug in handling of reboot type.

'type' attribute of reboot OS API call was directly mapped to the
'reboot_type' option of Ganeti reboot job. However these two are
semantically different. The 'SOFT' and 'HARD' reboot types of OS API are
mapped to 'shutdown_timeout' option of Ganeti jobs. However, setting...

6488097c 08/27/2013 11:25 am Christos Stavrakakis

cyclades: Do not pass 'hotplug' if disabled

Fix passing of hotplug argument to GanetiRAPIClient, in case the
GANETI_USE_HOTPLUG is unset. If the Ganeti version does not support
hotplug, passing hotplug=False, will make the jobs fail at Ganeti opcode
validation. This commit fixes this by passing the argument, only when...

dfcece01 08/23/2013 06:00 pm Christos Stavrakakis

cyclades: Fix broken tests from commit #c172f4a

Commit #c172f4a used the "size" attribute of images. This commit
fixes mocked images of tests to contain this attribute.

c172f4ab 08/23/2013 12:16 pm Christos Stavrakakis

Pass hashmap instead of location to snf-image

Update Cyclades, to pass as 'img_id' the hashmap('checksum') of the
image, instead of the location URL. In that way, snf-image does not any
access to the Pithos database.

20a626e7 08/21/2013 11:36 am Giorgos Korfiatis

cyclades: Fix call to api_method_not_allowed

9599e997 08/20/2013 03:41 pm Christos Stavrakakis

cyclades: Add check for net action with no hotplug

In case hotplug is disabled, via GANETI_USE_HOTPLUG setting, network
actions should be allowed only on STOPPED vms. This commit adds this
check and a unittest for this case. Also it makes some other checks...

231b0fb6 08/20/2013 08:40 am Christos Stavrakakis

cyclades: Fix check for firewall profile

27435d42 08/19/2013 11:25 am Christos Stavrakakis

cyclades: Remove firewall tag when removing NIC

Remove firewall tag from ganeti instance when disconnecting them from
networks. Until now, this was not needed because a vm could not be
disconnected from public networks. Since floating IPs, a vm may be
dynamically be connected and disconnected to public networks, and so a...

728e8923 08/07/2013 11:17 am Christos Stavrakakis

cyclades: Fix bug in servers tests

Import settings from django.conf instead of synnefo.