Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / logic @ aee560b0

# Date Author Comment
aee560b0 11/18/2013 02:57 pm Christos Stavrakakis

cyclades: Do not retry all Ganeti failed creations

Make snf-dispatcher retry only the OP_INSTANCE_CREATE jobs that failed
due to opportunistic locking. Such jobs include the 'ECODE_TEMP_NORES'
error code in the opcode result. This commit makes snf-ganeti-eventd...

7b4a61dc 11/18/2013 12:46 pm Christos Stavrakakis

gtools: Fix Ganeti allocation parameters

When retrying a failed job, remove 'pnode' and 'snode' fields if they
were implicitly set by Ganeti iallocator. Ganeti will fail if both
iallocator and node are specified in the job.

727fb2f9 11/11/2013 03:29 pm Christos Stavrakakis

cyclades: Retry failed instance creation

Handle special case where an OP_INSTANCE_CREATE job which uses the
opportunistic locking feature fails. This failure is probably due to the
fact that all nodes may be already locked. In this case, make
snf-dispatcher retry the failed job with opportunistic locking turned...

dee2e82c 11/11/2013 03:29 pm Christos Stavrakakis

cyclades: Fix compatibility issues with networks

From version 2.7, Ganeti returns the network's UUID field in nics
'networks' attribute. Instead use 'networks.names' attribute to get
the network name.

66932293 11/11/2013 03:29 pm Christos Stavrakakis

cyclades: fix typo in snf-dispatcher

0dd40027 11/11/2013 03:29 pm 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.

2796f26a 11/11/2013 03:29 pm Christos Stavrakakis

cyclades: Small fixes to network reconciliation

  • Pass missing argument to function
  • Fix corner case where there are no externally reserved IPs.
4b052f94 11/11/2013 03:29 pm Dimitris Aragiorgis

cyclades: New style format for modifying a NIC

Signed-off-by: Dimitris Aragiorgis <>

9c7c6a57 11/11/2013 03:29 pm Dimitris Aragiorgis

cyclades: Remove hotplug from InstanceCreate

Signed-off-by: Dimitris Aragiorgis <>

d9b5b020 11/11/2013 03:29 pm Dimitris Aragiorgis

cyclades: Pass network type info as network tag

Signed-off-by: Dimitris Aragiorgis <>

3f68fa52 11/11/2013 03:28 pm Dimitris Aragiorgis

cyclades: Remove deprecated network type in ganeti

Signed-off-by: Dimitris Aragiorgis <>

b36d45e6 11/11/2013 03:28 pm Christos Stavrakakis

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

2b4becab 11/11/2013 03:28 pm Christos Stavrakakis

gtools: 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
  • cyclades: Group info is returned as list instead of string
94ea30c8 11/11/2013 03:26 pm Christos Stavrakakis

cyclades: Fix bug in network reconciliation

Skip reconciliation for a network that does not exist in the DB, if
reconciliation is running without the '--fix' option.

01f5f8d9 11/04/2013 03:20 pm Christos Stavrakakis

cyclades: Workaround for race condition in Ganeti

Workaround for race where OP_INSTANCE_REMOVE starts executing on Ganeti
before OP_INSTANCE_CREATE. If this is the case, OP_INSTANCE_REMOVE will
not wait for locks, instead it will fail because the instance has not...

3d5906fe 10/16/2013 06:21 pm Giorgos Korfiatis

Resolve some undefined names

Add missing imports; remove call to sqlite3_changes; set key and val
in render_meta.

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.

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

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.

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

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

07602322 07/08/2013 03:05 pm Christos Stavrakakis

cyclades: Fix corner case in snf-dispatcher

Same as commit 0514662, but for servers.

05146623 07/04/2013 11:24 am Christos Stavrakakis

cyclades: Fix corner case in snf-dispatcher

Delete network from DB when job fails but the action of network is
DESTROY. This case appears when someone tries to remove a network that
has been deleted from Ganeti backend, but not yet from DB.

82d23461 07/03/2013 02:43 pm Christos Stavrakakis

reconciliation: Get servers from DB ater ganeti

Change server reconciliation, to get the instances from DB after getting
instances from Ganeti, to decrease the possibility for races.

952b2a48 07/02/2013 03:00 pm Christos Stavrakakis

cyclades: Wrap diagnostic creation in transaction

Fix bug in snf-dispatcher causing wrong updates of VMs from ganeti.
Creation if instance diagnostics must run inside a transaction, because
otherwise, the lock of the vm (select_for_update) is released too early....

b12ab2d0 06/25/2013 03:23 pm Christos Stavrakakis

Revert "cyclades: Speed up reconciliation"

This reverts commit cf2241c45a22dac71e31dbf32f4700c475804c12.

cf2241c4 06/25/2013 11:36 am Christos Stavrakakis

cyclades: Speed up reconciliation

Speed up reconciliation by using mulitprocessing to get in parallel
the instances from all Ganeti backends.

e8aa2f64 06/21/2013 05:42 pm Christos Stavrakakis

cyclades: Fix bug in allocating archipelago VMs

This commit fixes a bug that caused backend allocator to send
archipelago VMs backends to backends not in ARCHIPELAGO_BACKENDS
setting. The flavor disk template is parsed before the backend
allocation, so the disk_template at this point is ext and not ext_vlmc,...

e63050ca 06/19/2013 02:30 pm Christos Stavrakakis

cyclades: Speed up server reconciliation

Speed up reconciliation, by increasing the time interval to get Ganeti
job status for VMs in building state.

40d53b77 06/19/2013 11:07 am Christos Stavrakakis

cyclades: Fix deadlock when creating servers

Fix deadlock between snf-dispatcher and backend allocator, by making
snf-dispatcher take an exclusive lock to the backend which hosts the vm,
before trying to get the exclusive locks to the IP pools in order to...

5ba43517 06/17/2013 03:57 pm Christos Stavrakakis

cyclades: Validate MAC prefix in pool-create cmd

b2222a7f 06/13/2013 05:10 pm Christos Stavrakakis

cyclades: Pass disk origin for all 'ext' flavors

18c4414d 06/07/2013 03:15 pm Giorgos Korfiatis

cyclades: Rename service token

Rename CYCLADES_ASTAKOS_SERVICE_TOKEN to CYCLADES_SERVICE_TOKEN for
uniformity.

e3ff6830 06/03/2013 11:49 am Georgios D. Tsoukalas

make synnefo URLs consistent and configurable

https://service.deployment.vendor.tld/service-base/api-prefix/hard/path |___________________________________| |__________| |________| |_______|
BASE_HOST BASE_PATH PREFIX Hardcoded...

6dafedf6 05/31/2013 05:12 pm Christos Stavrakakis

cyclades: Add 'drained' flag to Network

Extend Network model with the 'drained' attribute, to indicate whether a
network should be used in public IP allocation when creating servers.
This option is only useful for public networks.

7f79fa49 05/24/2013 04:17 pm Christos Stavrakakis

cyclades: Export hypervisor to backend-list cmd

4c9ac139 05/21/2013 02:09 pm Christos Stavrakakis

cyclades: Add --hypervisor option to backend cmds

Add '--hypervisor' option to 'backend-add' and 'backend-modify'
management commands.

Refs #3772

bd87213f 05/21/2013 02:07 pm Christos Stavrakakis

cyclades: Sypport backends with Xen hypervisor

Support Ganeti backends with Xen hypervisor:
  • Extend 'Backend' model with the 'hypervisor' attribute, which
    currently can be 'kvm' or 'xen'. Use 'kvm' as default value to
    easy database migration. Also add the corresponding schema migration....
c6c889f7 05/14/2013 02:09 pm Christos Stavrakakis

cyclades: Various fixes to tests

fd95834e 05/14/2013 01:25 pm Christos Stavrakakis

dispatcher: Handle NICs in callbacks.

Update 'update_db' callback to handle instance NICs together with
instance status.

Also update the relevant tests.

be4d8aed 05/14/2013 01:25 pm Christos Stavrakakis

cyclades: simplify comparison of NICs

95059648 05/14/2013 01:25 pm Christos Stavrakakis

Remove 'snf-events-net' queue and binding

Remove 'snf-events-net' queue (together with the corresponding routing
key and binding) from the queues that snf-dispatcher is consuming
messages. This queue is no longer needed, because messages for instance
NICs will be sended by snf-ganeti-eventd to 'snf-events-op' queue....

acfc71ef 05/14/2013 01:25 pm Christos Stavrakakis

cyclades: Fix deadlock when connecting vms

Fix deadlock caused by 'get_or_create' method, since it acquires an
implicit shared lock. Take an exclusive lock on network to fix this
deadlock.

27cda06b 05/14/2013 01:24 pm Christos Stavrakakis

cyclades: Fixes relevant to lazy networks

de1fed2b 05/14/2013 01:24 pm Christos Stavrakakis

cyclades: Simplify reconcile-networks checks

Refactor and simplify checks of reconcile-networks to take advantage
of lazy networks.

1d04ef8b 05/13/2013 01:36 pm Christos Stavrakakis

cyclades: update tests for lazy networks

e34b35d9 05/13/2013 01:36 pm Christos Stavrakakis

cyclades: Update 'backend-add' for lazy networks

Do not create private networks when adding a new backend. Since,
"lazy networks" this is no longer needed.

99af08a4 05/13/2013 12:38 pm Christos Stavrakakis

cyclades: Implement lazy networks

Implement "lazy networks", which are not created to all Ganeti backends
upon creation, but only when an instance that resides in a Ganeti is
connected to that network.

Update 'create_network' to create the Network object in DB without...

2509ce17 04/30/2013 05:05 pm Christos Stavrakakis

cyclades: refactor code relative to commission

Refactor Cyclades code that handles commissioning with Quotaholder. This
commit removes the 'uses_commission' decorator. Instead it introduces
the 'issue_and_accept_commission' function that is responsible for...

184a2a8c 04/30/2013 05:05 pm Christos Stavrakakis

Mock quotaholder for Cyclades tests

Create 'mocked_quotaholder' context manager to bypass commission and use
it in Cyclades tests. Also this commit does some various fixes to other
tests.

6cc65c86 04/22/2013 10:10 am Christos Stavrakakis

Remove transaction from 'backend-add' command

Do not run 'backend-add' command inside transaction, because if
'snf-dispatcher' is running, it will receive messages that will arrive
from a Ganeti backend that does not exist in the DB and will not be able
to process them.

04a1b675 04/08/2013 06:17 pm Christos Stavrakakis

Move astakos lib from snf-common to snf-django-lib

1a736ca8 04/08/2013 04:27 pm Christos Stavrakakis

Use 'python-objpool' instead of 'synnefo.lib.pool'

Use the python-objpool package for pooling resources as object, instead
of the pooling code that existed in snf-common ('synnefo.lib.pool')

Refs #3524

28578e52 04/02/2013 01:49 pm Christos Stavrakakis

Use pprint_table in server-show command

939d71dd 03/21/2013 05:05 pm Christos Stavrakakis

Create public NIC when creating VM

Until now, a server's public NetworkInterface was not created in the DB
until the arrival of the message from Ganeti hooks. However, the IPv4
address of the NIC is reserved before sending the OP_INSTANCE_CREATE
job to Ganeti....

76a13815 03/20/2013 07:42 pm Christos Stavrakakis

Move UserCache from cyclades.common to lib.astakos

Move UserCache from synnefo.management.common to synnefo.lib.astakos.
Also, update ListCommand with 'astakos_url' and 'astakos_token' class
attributes, which must be declared only when 'user_uuid_field' is used.

225cea18 03/14/2013 03:58 pm Christos Stavrakakis

Move common code for mngmt commands to webproject

Move cyclades functions that are useful for all managament commands, like
pprint_table or parse_filters, to snf-webproject.

b0e7f310 03/14/2013 03:58 pm Christos Stavrakakis

Add ListCommand to be used for all *-list commands

Create a generic ListCommand to be user for all *-list management
commands. ListCommand handles must tasks that are common to all
management commands, like retrieving objects from db, filtering
results and formating output to a pretty table, json or csv....

426e4bda 03/11/2013 06:45 pm Christos Stavrakakis

Merge branch 'release-0.13' into develop

Conflicts:
version

e18c1749 03/08/2013 04:22 pm Christos Stavrakakis

Bypass commissioning for orphan networks

Cyclades public networks do not have an owner, and since can not use
the commissioning system. Also, make snf-dispatcher instead of failing
for networks without userid to just a log a warning. This does not apply for...

e6c4bd78 03/07/2013 05:10 pm Christos Stavrakakis

Merge branch 'release-0.13' into develop

Conflicts:
snf-cyclades-app/synnefo/api/management/commands/cyclades-export-quota.py
snf-cyclades-app/synnefo/api/management/commands/network-list.py
snf-cyclades-app/synnefo/api/management/commands/server-inspect.py...

4500650c 03/07/2013 02:03 pm Stratos Psomadakis

Improve server-list usability

Refs #3375

8283d6c1 03/07/2013 02:03 pm Stratos Psomadakis

Improve perf for snf-manage cyclades commands

When the snf-manage {server, network}-list commands are invoked with the
--displayname option, batch the UUID-to-displayname requests to astakos,
instead of issuing a request for each (unique) UUID.

Refs #3375

cd8d886d 02/26/2013 09:53 am Christos Stavrakakis

Merge branch 'release-0.13' into develop

Conflicts:
version

8b71fc91 02/21/2013 01:31 pm Christos Stavrakakis

reconciliation: handle missing network from db

Continue reconciliation even if an orphan network is missing from DB.

be1dca04 02/18/2013 07:06 pm Christos Stavrakakis

Fix typo

c4e45b57 02/18/2013 02:25 pm Christos Stavrakakis

pep8 convension

9621c777 02/18/2013 01:48 pm Christos Stavrakakis

pep8 convension to cyclades management commands

c51f3a08 02/14/2013 06:05 pm Stratos Psomadakis

Add --uuids option to snf-manage cmds

8528b8ac 02/14/2013 11:03 am Christos Stavrakakis

Totally remove password from create_instance

Never pass password as an 'osparam' to Ganeti. Always use the vmapi,
even for VMs created with server-create management command.

1ad47ca5 02/12/2013 08:08 pm Christos Stavrakakis

Fix reconciliation for building VMs

Since commit 482c645, a VM exists in the Cyclades DB before the
corresponding job is enqueued in the Ganeti backend. Therefore, there is
a corner case, where Cyclades can not enqueue the job to Ganeti and
Cyclades crashes before deleting the VM from the DB, which results in a...

9e20fcee 02/08/2013 11:53 am Christos Stavrakakis

Remove mac2eui64 dependency

Import mac2eui64 code which is already shipped under util/mac2eui64 instead
of shipping it as a seperate script.

c59f7e0f 02/08/2013 11:53 am Christos Stavrakakis

Fix pep8 issues

cc92b70f 02/06/2013 02:18 pm Christos Stavrakakis

Fix pep8 warnings

1b9a83e7 02/05/2013 04:42 pm Christos Stavrakakis

Fix bug in network reconciliation

Fix bug in network reconciliation caused by wrong variable scope.

68b952f9 02/01/2013 04:52 pm Christos Stavrakakis

pep8 fixes

776d2a3f 01/31/2013 12:58 pm Christos Stavrakakis

Rename ARCHIPELAGOS to ARCHIPELAGO

Rename ARCHIPELAGOS_BACKENDS setting to ARCHIPELAGO_BACKEND.

f659cd15 01/21/2013 03:38 pm Kostas Papadimitriou

Fix progress messages handling

proper handling of missing `messages` key progress messages.

bed3cd0b 01/18/2013 03:09 pm Christos Stavrakakis

Network field type has been renamed to flavor

2f70b788 01/18/2013 02:33 pm Christos Stavrakakis

Fix typo bug in reconcile ip pools

cab31c74 01/18/2013 01:30 pm Christos Stavrakakis

Add warning message for backend without networks

c346aed0 01/14/2013 06:45 pm Christos Stavrakakis

Refactor network reconciliation

ff10da48 01/08/2013 03:49 pm Christos Stavrakakis

Remove unused imports from tests

3f77e63d 01/07/2013 12:22 pm Christos Stavrakakis

Merge branch 'master' into devel-0.13

Conflicts:
snf-cyclades-app/synnefo/db/models.py
snf-cyclades-app/synnefo/logic/management/commands/backend-modify.py

039e3e61 01/07/2013 11:15 am Christos Stavrakakis

Refactor tests

0816cd46 01/04/2013 11:38 am Christos Stavrakakis

Fix bug about networks and offline backends

Ignore offline backends when computing the state of the network, since
no notification will be received from them. Also, create no
BackendNetwork for an offline backend. This will be created by
reconcilliation, when the backend gets online again.

b66e4833 12/20/2012 05:29 pm Christos Stavrakakis

Add more tests for db, logic and api

5480daec 12/20/2012 05:22 pm Christos Stavrakakis

Remove dummy function

c8908e51 12/19/2012 05:32 pm Christos Stavrakakis

Add more tests for db and logic

52194c77 12/19/2012 05:32 pm Christos Stavrakakis

Refactor some test code

e6f6627c 12/14/2012 06:22 pm Christos Stavrakakis

Misc minor bug fixes

47eeffa9 12/14/2012 06:22 pm Christos Stavrakakis

Fix current db, logic and api tests

f45a7ac4 12/12/2012 02:05 pm Christos Stavrakakis

Fix variable scope bug in process_net_status

21c9042c 12/12/2012 11:12 am Christos Stavrakakis

Do not allow creation of more than one pools

Do not allow creation of more than one Bridge or MacPrefix pool, since
we can not handle them yet.

c414bc87 12/10/2012 04:14 pm Christos Stavrakakis

Add backend-id option to reconcile-servers

Make reconcile-servers perform reconciliation only for the specified
backend.

c6ad2f2d 12/06/2012 02:02 pm Christos Stavrakakis

reconciliation:avoid double asking Ganeti

Modify reconcile-servers to not communicate 2 times with Ganeti
to get the operstate and the NICs of the VMs. Merge this two one
call.

f83ebc98 12/05/2012 02:33 pm Christos Stavrakakis

Modify backend-modify --drained and --offline args

Make backend-modify drained argument as --drained=True|False instead
of --drained and --no-drained. The same for offline.