Statistics
| Branch: | Tag: | Revision:

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

# Date Author Comment
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.

88b8f176 12/05/2012 02:08 pm Christos Stavrakakis

Mark as drained newly added backends

cc3c59b3 12/05/2012 01:33 pm Christos Stavrakakis

Rename reconcile command to reconcile-servers

Rename `snf-manage reconcile` management command to `snf-manage
reconcile-servers`, to be consistent with `snf-manage
reconcile-networks`. Also, treat '--detect-all' option as default
when no other '--detect-*' is specified.

b7d38981 12/04/2012 04:51 pm Dimitris Aragiorgis

Introduce network flavors to replace network types

Add tags and mode to network db model. Replace existing type with
flavor. Introduce 4 different flavors. Each flavor has mode, link,
mac_prefix, tags. Supported flavors are CUSTOM, IP_LESS_ROUTED,
MAC_FILTERED, PHYSICAL_VLAN and are hardcoded in db models....

600a3d4d 12/03/2012 02:59 pm Christos Stavrakakis

Implement quotas-init and quotas-verify

Implement quotas-init and quotas-verify management commands.
- quotas-init sets quotas of Quotaholder to the state of quotas in
Cyclades DB
- quotas-verify detects incosistencies between quotas in Quotaholder and...

2e1e6844 11/30/2012 02:47 pm Christos Stavrakakis

Temporary fix for allocating archipelagos VMs

006c6249 11/30/2012 12:49 pm Christos Stavrakakis

Fix typos

2a599282 11/30/2012 12:20 pm Christos Stavrakakis

Merge handling of ext_<provider> disk templates

33050118 11/29/2012 03:55 pm Georgios D. Tsoukalas

Merge branch 'origin/devel-0.13' into quota

Conflicts:
snf-cyclades-app/synnefo/api/servers.py

cb4eee84 11/26/2012 12:40 pm Christos Stavrakakis

Issue commission when deleting VM/Network

Issue commission to the Quotaholder when being notified from the Ganeti
backend that a VM/Network has been deleted. Although the resource has
already been deleting, we are interacting with the quotaholder in a
two step phase: issue commission and accept commission. It would be...

11a54cb9 11/26/2012 12:40 pm Christos Stavrakakis

Implement reconciliation for pending quotas

10de1102 11/26/2012 12:40 pm Christos Stavrakakis

Remove transaction from update_network_state

Remove transaction decorator from update_network_state function, since
this function is only called from process_network_status, which already runs
inside a transaction.

4d5d0b9c 11/26/2012 12:31 pm Christos Stavrakakis

Do not automatically update network state

Each modification in a BackendNetwork object, triggers an update
to the corresponding Network object. Until now this was done by
the BackendNetwork save() method. Now it is explicitly done
from the backend pross_network_status.

d7841399 11/23/2012 03:13 pm Christos Stavrakakis

Remove IGNORE_FLAVOR_DISK_SIZES setting

79b7dbb7 11/23/2012 01:50 pm Christos Stavrakakis

Use vmapi when creating servers

Use the vmapi when creating servers. Creete instance RAPI call takes the
configuration url instead all the image parametere. The id and format
of the image are still passed, just for readability and debugging.

Also renamed params_url to config-url.

b578d9e7 11/22/2012 01:26 pm Christos Stavrakakis

snf-dispatcher: Update NICs only when needed

Do not remove and recreate the NICs of a VM when NICs have not changed.

3e7c63f8 11/22/2012 01:26 pm Christos Stavrakakis

Implement resizing of pools

Extend PoolManager to support extending and shrinking of Pools. Also
add extra option '--size' to pool-modify command.

7a0aa449 11/22/2012 01:26 pm Christos Stavrakakis

Add function for pretty printing tables

a8858945 11/22/2012 01:24 pm Christos Stavrakakis

Make amqp_puka get logger as argument

2333a2c4 11/16/2012 02:54 pm Christos Stavrakakis

Check clustername when modifying backend

f7759b2d 11/16/2012 12:55 pm Christos Stavrakakis

Add check for clustername when adding backend

d4be7102 11/16/2012 12:24 pm Christos Stavrakakis

Fix lectical in pool-modify

f0fe50c2 11/12/2012 05:14 pm Christos Stavrakakis

Fix typo

b84ed662 11/09/2012 05:32 pm Christos Stavrakakis

Refactor code in management commands

39a6388d 11/09/2012 01:08 pm Christos Stavrakakis

Improve management commands

6639a243 11/08/2012 06:19 pm Christos Stavrakakis

Merge branch 'master' into devel-0.12

Conflicts:
snf-cyclades-app/synnefo/api/management/commands/flavor-list.py
snf-cyclades-app/synnefo/api/management/commands/server-list.py
snf-cyclades-app/synnefo/api/networks.py
snf-cyclades-app/synnefo/logic/rapi.py

fdfd8c6d 11/08/2012 01:21 pm Christos Stavrakakis

Fix dispatcher logging

7f2dbcad 11/07/2012 12:52 pm Christos Stavrakakis

Use select_for_update for VirtualMachines

Use select_for_update method when accessing VM objects to prevent
race conditions. Also move start_action from logic to api.

fd2bdbb2 11/07/2012 11:04 am Christos Stavrakakis

Process OP_NETWORK_SET_PARAMS Ganeti jobs

Modify snf-ganeti-eventd and snf-dispatcher to handle jobs with
OP_NETWORK_SET_PARAMS opcode. Handling of these jobs is needed
to update the IP Pool of network, when reserving and releasing
IPs directly from the Ganeti backend.

d1b1e683 11/06/2012 01:30 pm Dimitris Aragiorgis

PUBLIC_ROUTED minor changes

Do not allow api to create public networks and type other
than PRIVATE_MAC_FILTERED/PRIVATE_PHYSICAL_VLAN.

Rename PUBLIC_ROUTED_USE_POOL setting to PUBLIC_USE_POOL.

Let synnefo do IP pool management only if network is private or...

6de25206 11/06/2012 12:57 pm Dimitris Aragiorgis

Add conflicts_check option in network rapi calls

Ganeti by default checks for conflicting IPs when creating/connecting
networks. This feature can be bypassed for private networks. We do
not care for IP uniqueness in case of private networks as long as they...

a406663f 11/06/2012 12:57 pm Dimitris Aragiorgis

Update rapi client

Get rapi client from snf-ganeti. Add depends argument (for chain jobs)
where needed.

Argument tags must be a list of strings and arguments add_reserved_ips and
remove_reserved_ips must be None or a list of strings.

Signed-off-by: Dimitris Aragiorgis <>

2d762302 11/06/2012 12:57 pm Dimitris Aragiorgis

Minor backend fixes in networks

Add conflicts_check option when creating and add network. Check only
if a network is public.

Let tags argument in rapi calls be a list.

Signed-off-by: Dimitris Aragiorgis <>

f66d8b04 11/05/2012 09:45 am Christos Stavrakakis

Display VM build percentage in management commands

b74d3b64 11/05/2012 09:14 am Christos Stavrakakis

Allow custom link, mac_prefix in network-create

Add extra command line arguments, to allow the user specify the
link and mac_prefix of the new network if needed.

5dd9d123 11/02/2012 11:29 pm Christos Stavrakakis

Introduce per-user allocation of VMs to backends

Add BACKEND_PER_USER setting, a mapping from users to backends. This setting
can by used in order to bypass the default backend allocation process, and
allocate all the new VMs of a specific user to a specific Backend.

e221ade2 11/01/2012 01:24 pm Christos Stavrakakis

Do not allow any API action on suspended VMs

Do not allow any modification of any administratively suspended VM through the
API.