Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app @ 3f018af1

# Date Author Comment
3f018af1 09/27/2012 03:59 pm Christos Stavrakakis

Make snf-dispatcher work with gevent

Remove workers from snf-dispatcher in order to make it compatible with gevent
and specifically the green, monkey patched version of psycopg2
(synnefo.lib.db.psyco_gevent). Also after daemonizing, gevent must be
reinitialized because the deamon context forks.

47d1d754 09/21/2012 11:23 am Christos Stavrakakis

Add some logging to backend allocator

fdc94944 09/20/2012 12:14 pm Christos Stavrakakis

Refactor IP pools

Treat IP pool the same way as bridge and mac-prefix pools. The pool is
removed from the Network table and moved to an IPPoolTable containing the
IP pools for all networks. Also added support for external reservations.

Migration files for transfering the pool to the new tables are included....

2dbe7563 09/20/2012 12:14 pm Christos Stavrakakis

Add tests for PoolManager(s)

121c7507 09/20/2012 12:14 pm Christos Stavrakakis

Fix bugs in IPPool

- Do not always reserve gateway
- Initial reservations must be in reserved map

9727ac2f 09/20/2012 12:14 pm Christos Stavrakakis

Handle case of no pools in reconcile-pools

99a74636 09/19/2012 01:16 pm Christos Stavrakakis

Catch error in removing nic

0eed6cf8 09/19/2012 01:16 pm Christos Stavrakakis

Management commands for pools

Create three new management commands for listing, showing and modifying
a pool.

af6a3bc5 09/19/2012 01:16 pm Christos Stavrakakis

Unique mac-prefix only for mac-filtered networks

b533e9b2 09/19/2012 01:16 pm Christos Stavrakakis

Add logging to synefo.db.models

03992c72 09/19/2012 01:16 pm Christos Stavrakakis

Refactor bridge and mac-prefix pool tables

Redesign the implementation of pools and map mac-prefix and bridge pools
to that design.

Each pool type is mapped to a table in the database, and each row of
that table is a pool of that type. All pool tables must contain the...

4a37a0be 09/19/2012 11:34 am Christos Stavrakakis

Fix bug in server-inspect

56543400 09/19/2012 11:21 am Christos Stavrakakis

Fix bug in snf-manage network-remove

b7e74f05 09/19/2012 11:21 am Christos Stavrakakis

Wrap network-create command in transaction

341c818e 09/07/2012 05:41 pm Dimitris Aragiorgis

Enable hotplug during create_instance

This passes hotplug = True to ganeti and enables hotplug per instance.
It checks GANETI_USE_HOTPLUG setting.

Signed-off-by: Dimitris Aragiorgis <>

47c66641 09/07/2012 05:41 pm Dimitris Aragiorgis

Support multiple public networks in UI

Encapsulate in nic dict a public flag (network.public) and
remove twisted oldstyle identification way (network_id == 'public')
for retrieving public interfaces.
All network references are done via their network_id.
...

8d03316d 09/07/2012 05:36 pm Dimitris Aragiorgis

Allow connecting a VM to a network only if active

Signed-off-by: Dimitris Aragiorgis <>

7cfbbf32 09/07/2012 05:36 pm Christos Stavrakakis

New method for creating BackendNetwork entries

Create a new method to the Network model, in order to create the
BackendNetwork entries tha correspond to this network. Also remove
the custom save method, since when multiple public network will be
supported, we want them to be correlated with specific backends.

370f69ec 09/07/2012 05:36 pm Christos Stavrakakis

Remove dead code

7fede91e 09/07/2012 05:36 pm Christos Stavrakakis

Implement multiple public networks

Implement multiple public networks in order to support:
- different public networks per backend
- non-consecutive IP ranges in each backend

To support this, public networks are treated different from private
ones. Namely, they are correlated with one backend (and so have...

b14725eb 09/07/2012 05:36 pm Christos Stavrakakis

Do not allow creation of two big/small networks

- Networks smaller than /29 are not supported in Ganeti.
- Big networks will result in degraded performance in Ganeti
and DB due to the big reservation map.

30418cbe 09/07/2012 05:36 pm Christos Stavrakakis

Reserve gateway's IP when creating an IP pool

e49565e1 08/27/2012 05:26 pm Kostas Papadimitriou

Propagate NIC change event to the associated vm

so that nic changed attributes get propagated to the vm views (e.g. nic ip
change).

97d3fca1 08/27/2012 12:42 pm Kostas Papadimitriou

Catch error caused by duplicate NIC removal in ui

NICs get removed once their associated vm or network trigger their
corresponding remove signal. Synchronous removal of vm/network will
cause duplicate NIC removes to be called.

222b0a40 08/09/2012 04:35 pm Kostas Papadimitriou

Revert plankton backend to its original state

trash development code was added by mistake in commit `c6dda6c`

c6dda6cd 08/06/2012 05:56 pm Kostas Papadimitriou

Update GANETI_DISK_TEMPLATES setting description

Describe how to set ext disk template provider.

296682fe 08/06/2012 11:45 am Kostas Papadimitriou

Support for ext disk providers

Extract provider from flavor disk template name and set the additional
`provider` parameter in disk options. Flavor disk_template should be
formated as `ext_<provider_name>`.

3878553d 08/06/2012 11:30 am Kostas Papadimitriou

Networks list api response fix

include deleted networks in reponse if changes-since parameter is set. This
enables ui application to identify deleted networks and remove them from
user interface.

5c029c29 08/06/2012 11:28 am Kostas Papadimitriou

Remove spare div from html

8aed3cc3 08/06/2012 11:28 am Kostas Papadimitriou

Fix html typo

0b682c29 08/06/2012 11:28 am Kostas Papadimitriou

Firefox ui fix

add overflow to `hidden` to properly clear upper div in single vm view.

1d7c75e4 08/01/2012 06:08 pm Kostas Papadimitriou

Fix servers api list response

filter out deleted vms !!!!!!!

e524ed5f 08/01/2012 05:38 pm Kostas Papadimitriou

Fix servers api response

do not filter out deleted vms if valid changes-since parameter is set on
the request. This allows ui application to be able to identify and remove
deleted vms.

0224049a 07/27/2012 09:48 pm Christos Stavrakakis

Add check for maximum secret encryption key

SECRET_ENCRYPTION_KEY can be up to 32 bytes long, since bigger keys are
not supported by AES encryption. Add comment to the setting and better
message to exception.

601ce073 07/27/2012 09:26 pm Christos Stavrakakis

Fix bug in migration file

Do not allocate a bridge from the pool for deleted networks.

ca8b1c21 07/27/2012 07:28 pm Christos Stavrakakis

Rename setting

Rename ENCRYPTION_KEY to SECRET_ENCRYPTION_KEY to prevent from being
displayed at django debug traces.

16ddd1fe 07/27/2012 07:26 pm Christos Stavrakakis

Add setting indicating whether to use hotplug

8731a246 07/27/2012 07:20 pm Christos Stavrakakis

Revert "Start pool indexing from 0"

This reverts commit 2f998a3756c6fc7ddce9e0f83dea738e473320b8.

06e47471 07/27/2012 05:14 pm Christos Stavrakakis

Update Changelog

f91dee69 07/27/2012 04:20 pm Christos Stavrakakis

Fix bug in creating network

Exclude deleted networks.

f15a0994 07/27/2012 03:50 pm Christos Stavrakakis

New dependencies of snf-cyclades-app

2f998a37 07/27/2012 03:41 pm Christos Stavrakakis

Start pool indexing from 0

f4a66897 07/27/2012 03:40 pm Christos Stavrakakis

Limit allowed private networks per user

3f52dd82 07/27/2012 02:57 pm Christos Stavrakakis

Management command for removing backend

14fd6983 07/27/2012 02:57 pm Christos Stavrakakis

Add command for checking pool consistency

Add new management command 'reconcile-pools' which checks the consistency of the
pools and the uniqueness of the associated resources. Currently this
commands detects the inconcistencies, without trying to resolve them.

c807398f 07/27/2012 02:57 pm Kostas Papadimitriou

Fix serious bug in reconciliation

Do not perform reconciliation for VMs that are hosted in Backends
that are currently offline, since it is impossible to get the
state of these VMs from the backend. Before this patch, the
reconciliation mechanism would report these VMs as stale (and with...

d0411c0a 07/27/2012 02:57 pm Christos Stavrakakis

Fix migration files

Fix south migration files. In data migrations, access the Models from
the orm, instead importing Models from synnefo.db. This is necessary as
the orm provides access to the version of the models that existed when
the migration file was created.

1cf6ac86 07/27/2012 02:57 pm Christos Stavrakakis

Store action when creating a network

3165f027 07/27/2012 02:57 pm Christos Stavrakakis

Implement MAC Prefix Management

In order to guarantee uniqueness of MAC address accross all backends,
synnefo assignes a unique mac prefix to each network in each backend.

A mac-prefix of 20 bits, which is picked from the MacPrefixPool, is
assigned to each Network. The mac-prefix of the network in each...

4e5e8cc9 07/26/2012 06:29 pm Christos Stavrakakis

Warning about missing setting to migration file

a9ba398e 07/26/2012 06:29 pm Christos Stavrakakis

Fix bug when adding a new backend

Fix wrong reporting messages when adding a new backend.

aeb523a4 07/26/2012 06:29 pm Christos Stavrakakis

Get public network by public attribute

Do not find the public network by the primary key, as the initial_data.json
is obsolete. Instead, ise the public attribute of the Network Model.
Currently only one public Network is supported, and the used can not
create or delete the public Network. But this can easily change in the...

3ee8033d 07/26/2012 06:29 pm Christos Stavrakakis

Release resources of Network only on deletion

Assert that this is an 'real' deletion of a Network before releasing
it's resources. Without this patch, a resource used by an other Network
could be released, if someone called the Network.update_state function...

90b29b33 07/24/2012 02:27 pm Christos Stavrakakis

Fix creation of networks in new backend

18151abe 07/24/2012 02:27 pm Christos Stavrakakis

Fix bugs in migration files

f1fc1e9c 07/24/2012 02:27 pm Christos Stavrakakis

Add missing setting

Add PRIVATE_PHYSICAL_VLAN_TAGS setting

2b36eda5 07/24/2012 02:26 pm Christos Stavrakakis

Fix bug in process_net_status

Check that nic has an ipv4 before trying to release it.

ad297723 07/23/2012 03:31 pm Christos Stavrakakis

Setting for using IP Pool to public network

Introduce new setting 'PUBLIC_ROUTED_USE_POOL', to indicate whether
synnefo will be responsible for the IP management of the public network,
or this responsibility will be delegated to Ganeti.

453a4f9d 07/23/2012 01:48 pm Christos Stavrakakis

Fix dispatcher default file

e8afa9ff 07/23/2012 01:40 pm Christos Stavrakakis

Consider cpu ratio when allocating vm's

d5b7fd7f 07/23/2012 12:33 pm Christos Stavrakakis

Fix case of empty address pool

967d3f83 07/23/2012 12:16 pm Christos Stavrakakis

Transaction on create_instance

6eed1ede 07/23/2012 11:49 am Christos Stavrakakis

Limit allowed network size

Limit the size of networks that users can create, since big IP
pools can have negative impact on performance. Allowed network
size is controled by 'MAX_CIDR_BLOCK' setting.

c55b0cdc 07/23/2012 11:49 am Christos Stavrakakis

Reconciliation for network IP pool management

Reconcile the contents of each networks IP pool by comparing it
with combination of IP pools of all ganeti backends.

Add extra option for detecting conflicting IPs.

864bed43 07/23/2012 11:49 am Christos Stavrakakis

Implement model manager using row-level db locking

Implement ForUpdateManager that uses SELECT .. FOR UPDATE statement in
order to acquire row-level exclusive locks to DB. Essentially this
manager backports the select_for_update() method that is implemented in...

2a8a60d5 07/23/2012 11:49 am Christos Stavrakakis

Increase the size of backend password_hash

8a4a931d 07/23/2012 11:49 am Christos Stavrakakis

Fix IP pool exceptions

4dba0480 07/23/2012 11:49 am Christos Stavrakakis

Add transaction control to API methods

Specially for create_instance and create_network methods, since a
VirtualMachine, Network object is created before sending the request
to the backend.

e1334eb6 07/23/2012 11:49 am Christos Stavrakakis

Use ForUpdateManager to Pool objects

439ff929 07/23/2012 11:49 am Christos Stavrakakis

Display IP pool map in network-inspect command

bd392934 07/23/2012 11:49 am Christos Stavrakakis

Release IP addresses when nics are destroyed

cc3f266e 07/23/2012 11:49 am Christos Stavrakakis

Add support for IPv6

- Extend the Network model with fields for holding the IPv6 subnet and
gateway.
- Update network API methods.
- Modify ganeti hooks to return IPv6 address for all network interfaces.
IPv6 is now derived from the IPv6 subnet of the network in Ganeti,...

6dd70a5c 07/23/2012 11:49 am Christos Stavrakakis

New management command for creating a network

Create a management command for creating networks. Also remove
the initial_data.json, since it is currently not necessary.

9c65f166 07/23/2012 11:49 am Christos Stavrakakis

Fix error state of BackendNetwork

77f0fa63 07/23/2012 11:49 am Christos Stavrakakis

Implement IP management

Delegate IP management to synnefo, in order to be able to allocate IP
addresses accross multiple Ganeti backends. This is achieved by creating a
Pool of IPs for each Network, in the form of a bitarray, which is stored
in the DB as a base64 string....

839e2bd0 07/23/2012 11:48 am Christos Stavrakakis

Update network settings

8b2515a9 07/23/2012 11:48 am Christos Stavrakakis

Filter deleted entries when changes-since is used

Modify list_networks and list_servers to filter deleted entries when
if-modified-since HTTP header is used, because deleted entries can be
updated after deletion through the reconciliation mechanism.

56a1134d 07/23/2012 11:48 am Christos Stavrakakis

Rename management commands

30e0ed74 07/23/2012 11:48 am Christos Stavrakakis

Encrypt Backend password

Use cipher to encrypt the passwords of the Ganeti backends in the DB.
Encryption/decryption is based on a configurable key, defined by the
ENCRYPTION_KEY setting. After modifying this setting, synnefo will be
unable to decrypt already stored passwords, and passwords must be...

87994836 07/23/2012 11:43 am Christos Stavrakakis

Handle bridge/mac-prefix pool exhaustion

Raise Overlimit exception when either bridge or mac-prefix pool
is exhausted. Also prohibit public network creation.

0196d9a3 07/23/2012 11:43 am Christos Stavrakakis

Add dirty bit to NetworkInterface

Extend NetworkInterface model with a dirty bit, indicating whether
the index of the NIC is consistent with the one in Ganeti. This flag is
set when deleting a NIC, and is switched off after processing the
notification from Ganeti. Removing a NIC with the dirty bit on is not...

08b079e2 07/23/2012 11:42 am Stavros Sachtouris

Update servers/networks responses for new API

- Reponses for servers and netowrks details (list or solo) are now
consistent to recent backend changes.
- Methods get_nic_from_index and construct_nic_id have been created
- Syntax for nic removal from network/vm has been adjusted

b9a0b3d5 07/23/2012 11:42 am Stavros Sachtouris

When creating network, the label subnet can now be cdir in the json request

91954b45 07/23/2012 11:42 am Christos Stavrakakis

Revert "Fix bug in dispatcher callback"

This reverts commit 5d40a128fb593ed641400c462f0e00a1b457f76e.

788a54be 07/23/2012 11:42 am Christos Stavrakakis

Remove machine if ganeti job fails

Set the VM deleted flag when receiving a failure notification for a
Ganeti OP_INSTANCE_REMOVE operation, even if the VM operstate is not
ERROR. The server may not exist in the backend not only because the
creation failed, but also because a remove notification was lost.

fd33b074 07/23/2012 11:42 am Kostas Papadimitriou

Fix modifynetwork management command

check available network status options based on Network.OPER_STATES

126a01f2 07/23/2012 11:42 am Kostas Papadimitriou

Cyclades UI integration with the new networks api

- Handles nic connections instead of vms. New NIC model and NICs
collections created to handle the NIC api logic. NIC models get
updated on each vms/networks api call.
- New private network creation form....

18059f42 07/23/2012 11:42 am Kostas Papadimitriou

Update cyclades ui jquery lib to 1.7.2

bf1d3a70 07/23/2012 11:39 am Christos Stavrakakis

Update management commands for new-style networks

d30f29aa 07/23/2012 11:39 am Christos Stavrakakis

Common functions for instance/network backend name

44e2c577 07/23/2012 11:39 am Christos Stavrakakis

Fix use of network name prefix

98cc8237 07/23/2012 11:39 am Christos Stavrakakis

Release resources when deleting network

Set as available in the pool the bridge and mac prefix that was
used by the deleted network.

15cb13b5 07/23/2012 11:39 am Christos Stavrakakis

Fix bug about unknown network in instance's nics

e41977e2 07/23/2012 11:39 am Christos Stavrakakis

Fix management commands

- Fix bug in backend_add
- Display backend_name in network_inspect command

04fe9a86 07/23/2012 11:39 am Christos Stavrakakis

Fix bug in networks api

0b827aa4 07/23/2012 11:39 am Christos Stavrakakis

Bug fixes concerning networks

910f80db 07/23/2012 11:39 am Christos Stavrakakis

Fix bug in dispatcher callback

During handling of ganeti-op-status messages, state was set to error
only if the the opcode was OP_INSTANCE_CREATE. This resulted to
vm's never being deleted, if they did not exist in Ganeti.

b79f759f 07/23/2012 11:39 am Christos Stavrakakis

Print warning about subnet value during migration

3b56bbe4 07/23/2012 11:39 am Christos Stavrakakis

Set index of NetworkInterface model to not null

36f4cb29 07/23/2012 11:39 am Christos Stavrakakis

Add backend method for removing a vm's nic