Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app @ 4445f97a

# Date Author Comment
911a1bc1 10/16/2013 01:26 pm Dionysis Grigoropoulos

cyclades: Various fixes in api/subnets.py

4445f97a 10/16/2013 01:26 pm Dionysis Grigoropoulos

cyclades: Fully support ip pools in subnets

5fa91dc4 10/16/2013 11:37 am Marios Kogias

cyclades: Add snf-manage port-inspect command

This command will provide info about the port concerning the DB and
the Ganeti state. For now, it provides only DB info.

0069a20c 10/16/2013 11:19 am Marios Kogias

cyclades: Add snf-manage port-remove command

f16aa9e6 10/15/2013 01:20 am Marios Kogias

cyclades: Add logic ports.py

Created a new file for ports in logic directory. This will have
the code about port manipulation in the backend. For now it is just
used for db filling.
Use the new function 'create' in the ports API.

a1713485 10/15/2013 01:20 am Marios Kogias

cyclades: snf-manage port-create

  • Create new command snf-manage port-create
  • Create new function util.get_security_group
be7c5377 10/14/2013 08:19 pm Christos Stavrakakis

cyclades: Fix some network management commands

  • Fix network-list to properly display networks. Add optionally
    'subnets' fields to display the IDs of all subnets
  • Fix network-modify to externally reserve the IPs in DB
  • Fix network-create to not require a name and subnet4 or subnet6...
3278725f 10/14/2013 05:56 pm Christos Stavrakakis

cyclades: Refactor backend code for new networks

  • Optimize DB queries by using prefetch related for NIC IPs.
  • Do not try to construct new NIC if it does not exist in Cyclades DB.
  • Update tests
812a1114 10/14/2013 05:42 pm Dionysis Grigoropoulos

cyclades: Add two functions to validate IP Pools

01adca6b 10/14/2013 05:42 pm Dionysis Grigoropoulos

cyclades: Neutron API, update tests for IP Pools

a996065e 10/14/2013 05:42 pm Dionysis Grigoropoulos

cyclades: Update subnets.py to support IP Pools

Update subnets.py to use the two functions introduced in commit 2a1e6fb

97ca522f 10/14/2013 05:42 pm Dionysis Grigoropoulos

cyclades: Update subnets.py to support slac

IPv6 subnets now support a boolean attribute called slac.
If a request for a subnet contains both a slac field and an enable_dhcp
field, only the slac one will be used. If no slac field is found for an
IPv6 subnet, the field enable_dhcp will be used instead....

fde2c1f7 10/14/2013 03:51 pm Christos Stavrakakis

cyclades: Fix the os-floating-ips API

Rewrite the of-floating-ips API to match with the new DB schema.

ae994d2e 10/14/2013 03:51 pm Christos Stavrakakis

cyclades: Fix getting value from pool

If an address is specified, check that the value belong to the pool,
else raise InvalidValue.

94b7399e 10/14/2013 03:51 pm Christos Stavrakakis

cyclades: Create IPv4 pool when creating network

Create IPv4 address pool when creating the network. This is a temporary
commit to make logic network work, since subnet and pool creation must
be moved out of the network creation part.

08e6fe1b 10/14/2013 03:51 pm Christos Stavrakakis

cyclades: Add method to get ip stats to network

Extend Network model with a method to get the number of free and total
IPv4 addresses of the network. Also, add method to IPAddress model to
release its IPv4 address if any. Finally, update backend-list management...

710b1c43 10/14/2013 03:51 pm Christos Stavrakakis

cyclades: Refactor code for allocating IPs

Refactor code that was used for allocating IP addresses and creating
NetworkInterfaces. The new code is more suitable to the new DB schema
where each network may have many IPv4 subnets and each subnet may
have many IP pools. Also, the new functions are using prefetch related...

413fb1dd 10/14/2013 11:07 am Christos Stavrakakis

cyclades: Add option to get value from pool

Extend PoolManager 'get' method to also take as argument a value to
get from the pool. If the value is already reserved, then a
ValueNotAvailable exception will be raised.

9541aab5 10/14/2013 12:07 am Marios Kogias

cyclades: snf-manage port-list

ab6d1a2f 10/13/2013 11:59 pm Marios Kogias

cyclades: Modify snf-manage network commands

Modifications according to the new API

a3b8aaf6 10/11/2013 04:54 pm Marios Kogias

cyclades: Add more port tests

e08afd0b 10/11/2013 02:45 pm Christos Stavrakakis

cyclades: Fix typo and tests

b3a43976 10/11/2013 02:40 pm Christos Stavrakakis

cyclades: Optimize DB queries of /servers API

Use 'prefetch_related' attribute of Django queryset to prefetch the
NetworkInterface and IPaddress objects that are related with a
VirtualMachine object. Also, modify functions that operate on server
NICs and IPs, to to use only the prefetched objects, which means that...

5db2001a 10/11/2013 11:07 am Marios Kogias

cyclades: Syntactic refactor ports

a96e84cf 10/10/2013 08:08 pm Christos Stavrakakis

cyclades: Fix code for networks logic and API

5b8a9240 10/10/2013 08:08 pm Christos Stavrakakis

cyclades: Fix and add new tests for /networks

Also, delete tests for old networks.

69237e6e 10/10/2013 08:06 pm Christos Stavrakakis

cyclades: Fix quotas tests

6a959c73 10/10/2013 06:12 pm Dionysis Grigoropoulos

cyclades: Update api/subnets.py and tests

Commit 4e3a667 introduced a new model for Subnets, this commit contains
the following changes:

  • Update api/subnets.py to match the new model
  • Create tests/subnets.py to test the above api calls
  • Update api/urls and tests/__init__.py to reflect the above changes
88329243 10/10/2013 05:30 pm Christos Stavrakakis

cyclades: Fix helpdesk code and tests for new nets

8c7c9813 10/10/2013 04:59 pm Christos Stavrakakis

cyclades: Fix DB tests

95a213d4 10/10/2013 04:46 pm Christos Stavrakakis

cyclades: Fix indentation, PEP8 and wrong imports

8764d304 10/10/2013 04:35 pm Christos Stavrakakis

cyclades: Make logic tests pass

Refactor Cyclades code so that it follows the new models for Networks,
Subnets and IPAddresses. This refactor is not complete. Instead is the
necessary refactor for making tests for server API calls succeed.

0baa1e3d 10/10/2013 12:40 pm Build Bot

Integrate /networks API call

593851e0 10/10/2013 12:40 pm Build Bot

cyclades: Add /ports api call

92d2d1ce 10/10/2013 01:56 am Christos Stavrakakis

cyclades: Make API server tests pass

Refactor Cyclades code so that it follows the new models for Networks,
Subnets and IPAddresses. This refactor is not complete. Instead is the
necessary refactor for making tests for server API calls succeed.

b4695420 10/09/2013 08:00 pm Christos Stavrakakis

cyclades: Make IPPool manager work for subnets

Temporary commit to make IPPool manager work. This will work only if
there is only one allocation pool for each subnet.

74d936dc 10/09/2013 07:59 pm Christos Stavrakakis

cyclades: Change 'null' attribute of Subnet models

2f1b4cbc 10/09/2013 07:38 pm Christos Stavrakakis

cyclades: Add missing migration file

16f7d0d9 10/09/2013 07:36 pm Dionysis Grigoropoulos

cyclades: Add api/subnets.py

cddc2b2f 10/09/2013 07:36 pm Dionysis Grigoropoulos

cyclades: Use a constant for name length of models

Use a constant for declaring the max length of the name of a
model

326c3ec8 10/09/2013 07:36 pm Christos Stavrakakis

cyclades: Replace FloatingIP with IPAddress

This commit just replaces all references to FloatingIP objects with
references to IPAddress object, in order to be able to just load the
code. But the code is left unchanged, so all tests will fail.

0247388f 10/09/2013 07:34 pm Christos Stavrakakis

cyclades: Update models_factory

Update models factory to match the new models.

Signed-off-by: Marios Kogias <>
Signed-off-by: Dionysis Grigoropoulos <>

06ffd11f 10/09/2013 07:33 pm Christos Stavrakakis

cyclades: Remove unused fields and model from DB

Remove unused 'ipv4' and 'ipv6' attributes from NetworkInterface model
and totally remove FloatingIP model. This information has been moved
in commit 972a428 to IPAddress model.

d484f6df 10/09/2013 07:33 pm Christos Stavrakakis

cyclades: Data migration from NIC to IPAddress

Migrate db data from NetworkInterface model to IPAddress model.

bdd0f1a6 10/09/2013 07:33 pm Christos Stavrakakis

cyclades: Major refactor on NIC model

Major refactor on db models concerning NetworkInterface models. A new
table, namely 'IPAddress' has been created to represent an IPAddress
(IPv4 or IPv6). Each IPAddress is related with a network and the subnet
from which it has been allocated. Also it contains 'floating_ip' attribute...

7b72b50d 10/09/2013 07:31 pm Christos Stavrakakis

cyclades: Remove unused fields from Network model

Remove unused fields from Network: subnet, subnet6, gateway, gateway6,
dhcp and pool. The following attributes have been moved to Subnet model
in commit 779c887. Also extend model with the 'external_router'...

4e3a6674 10/09/2013 07:31 pm Christos Stavrakakis

cyclades: Add new Subnet model

Add Subnet model containing Layer-3 characteristics for networks. Also,
extend IPPoolTable object to hold a reference to the Subnet that the
pool belongs to.

Signed-off-by: Dionysis Grigoropoulos <>

d8989b47 10/09/2013 07:31 pm Christos Stavrakakis

cyclades: Add DB data migration for subnets

Migrate attributes from old Network model to new Subnet model.

258d1f78 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Do not delete FIPs if VM is deleted

Remove on delete CASCADE for floating IPs if the VirtualMachine is
deleted.

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

cyclades: Include 'index' when comparing NICs

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

cyclades: Clear FloatingIP when deleting NIC

Override 'delete' method of NetworkInterface model, to clear the
'machine' flag of the corresponding NIC, if any.

0d069390 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Ignore Ganeti NICs with unknown ID

Do not process Ganeti NICs that do not have a valid ID and so are
unknown to Cyclades, because processing these NICs would require to
create them in DB and then rename them in Ganeti with the corresponding
identifier....

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

cyclades: Use NIC UUID in firewall tags

Use NICs UUID instead of index to generate firewall tags. Make the
'set_firewall_profile' action to take the NICs ID as argument. Also,
update the firewall settings.

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

cyclades: Change format of 'attachment' attribute

Change the format of the 'attachment' attribute. Until now, each
attachment had an identifier of the form 'nic-$vm_id-$nic_id'. This
commit changes the identifier to just '$nic_id', since from now on
is unique for the lifetime of a NIC.

121b8921 10/09/2013 11:40 am Christos Stavrakakis

cyclades: Fix case where 'dfree' is None

If Ganeti has not enabled 'plain' or 'drbd' disk template, then it
reports 'dfree' as None. Fix this corner case by treating None as 0.

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