Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / api @ 326c3ec8

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

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.

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

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

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

cyclades: Fix bug in floating IP test

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.

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.

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.

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.

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

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.

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

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

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.

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

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

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

cyclades: Fix unbound reference

Set backend to None if not specified.

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

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.

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

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

e368ad39 08/07/2013 11:08 am Christos Stavrakakis

cyclades: PEP8 fixes to tests module

2522e489 08/07/2013 11:08 am Christos Stavrakakis

cyclades: extend VM info with 'port_forwarding'

Extend servers info API response with 'SNF:port_forwarding' attribute,
describing port fowarding rules (DNAT) that are applied to vms. The
description of such rules is done via the new CYCLADES_PORT_FORWARDING...

d328a525 08/07/2013 11:08 am Christos Stavrakakis

cyclades: Extend servers info with fqdn attribute

Extend the servers info API response with the 'SNF:fqdn' attribute,
containg the vm's domain name in a DNS. This attribue is configurable by
the 'CYCLADES_SERVERS_FQDN' setting. If this setting is set to None,...

7e82ac17 08/07/2013 11:08 am Christos Stavrakakis

cyclades: add tests for 'fqdn'

16855230 08/06/2013 11:09 am Christos Stavrakakis

cyclades: Fix bugs in modifying network to IP pool

Fix bugs in network-modify command, and specifically when modifying
a network to a floating IP pool:
  • do not check availability of link in backends in which the network is
    already created.
  • check about the group list was working only with ganeti>=2.7...
a4658bbe 08/06/2013 08:40 am Christos Stavrakakis

cyclades: Move code for validating network values

Move code for network parameters validation from 'api' module to 'logic'.

d758784b 08/05/2013 02:39 pm Christos Stavrakakis

Fix stale import statements

Commit 7cfc0ce moved code from webproject to snf_django. This commit
fixes some stale imports that skipped renaming.

9582e68e 08/05/2013 01:29 pm Christos Stavrakakis

cyclades: Remove assumptions from tests

Remove some hard-coded IDs from tests.

7cfc0cef 08/05/2013 12:45 pm Christos Stavrakakis

snf-django: Move ListCommand to snf-django

snf-webproject contained the generic ListCommand, and because of this it
had a dependency from snf-django-lib. This commit moves this command from
snf-webproject to snf-django-lib and removes this dependency. Also,...

6c77ed37 07/26/2013 09:59 am Christos Stavrakakis

cyclades: Create network in all backends

Add option in snf-manage network-create command to create network in all
backends.

671db71c 07/25/2013 01:31 pm Christos Stavrakakis

cyclades: Add network to multiple backends

Update snf-manage network-create command to take a list of comma
seperated backend IDs to create the network to.

b47f167a 07/24/2013 09:15 pm Christos Stavrakakis

cyclades: Fixes in network management commands

Merge code from logic/networks.py and network management commands.

12e539f0 07/24/2013 09:15 pm Christos Stavrakakis

cyclades: Exclude FIP pools from IP allocation

Do not include the floating IP pools, to the available public networks
when allocating an IPv4 address, when 'SNF:ANY_PUBLIC' option is used.

b2791a77 07/24/2013 09:15 pm Christos Stavrakakis

cyclades: Set firewall profile per NIC

Set firewall profile per NIC, because since Floating IPs an instance can
have more than one NICs in a public network. Extend the API call to take
the NIC index as argument, and modify the Ganeti instance tags to be
formated with the NIC index.

449c2d82 07/24/2013 09:15 pm Christos Stavrakakis

cyclades: Fix bug in network-modify command

Fix bug caused by wrong identation level. Modification of network in
Ganeti should be performed only if 'add_reserved_ips' or
'remove_reserved_ips' options are used.

5e5b2476 07/24/2013 09:15 pm Christos Stavrakakis

cyclades: Convert network to floating IP pool

Add '--floating-ip-pool' option to network-modify management command, in
order to convert a network to a floating IP pool. Conversation of a
network to a floating IP pool requires the creation of the network to...

1fb0fdda 07/22/2013 04:53 pm Christos Stavrakakis

cyclades: Display task and task_job_id

Make 'server-show' and 'server-inspect' management command to display
the 'task' and 'task_job_id' fields of the vm.

12cb6933 07/22/2013 04:53 pm Christos Stavrakakis

cyclades: Minor improvements in manage commands

8d325d4b 07/17/2013 02:57 pm Christos Stavrakakis

cyclades: Simple code refactoring

5aeb4e93 07/17/2013 02:57 pm Christos Stavrakakis

cyclades: Support IPv6 only networks

Make Cyclades support IPv6 only networks. Such networks will have
the 'subnet' attribute set to None, in the same way that IPv4 only
networks have the 'subnet6' attribute set to None.

Because currently Ganeti does not support IPv6 only networks, we create the...

c75ab92e 07/17/2013 02:57 pm Christos Stavrakakis

cyclades: Refactor code relative to networks

Move code checks from network-create management command to
logic/networks.py.

Also create common decorator for management commands to convert api
faults to command errors.

890f3d4c 07/12/2013 01:22 pm Christos Stavrakakis

Merge branch 'hotfix-0.14.2' into develop

Conflicts:
Changelog
snf-astakos-app/astakos/im/messages.py
snf-astakos-app/astakos/im/views/target/__init__.py
snf-cyclades-app/synnefo/logic/backend.py
snf-cyclades-app/synnefo/logic/management/commands/reconcile-servers.py...

94537e34 07/11/2013 03:52 pm Christos Stavrakakis

cyclades: Move tests in tests directory

0ace35e4 07/10/2013 10:55 am Christos Stavrakakis

cyclades: Add size and free to floating-ip-pools

6193628f 07/08/2013 12:04 pm Christos Stavrakakis

cyclades: Fix typo bug in management command

32e4e343 07/07/2013 03:04 pm Christos Stavrakakis

PEP8 fixes

b6bc4afa 07/07/2013 03:04 pm Christos Stavrakakis

cyclades: Common filtering based on changes-since

Add 'filter_modified_since' function in snf_django api utils, for
parsing 'changes-since' HTTP parameter and filter the DB objects that
are updated after that date. Otherwise the deleted objects are returned.

870210e7 07/07/2013 03:04 pm Christos Stavrakakis

cyclades: Fix type bug in network-create cmd

291c782f 07/03/2013 08:22 pm Christos Stavrakakis

cyclades: Fix misleading message in network-remove

9446e7e5 07/02/2013 01:24 pm Christos Stavrakakis

cyclades: Rename "public" to "SNF:ANY_PUBLIC"

Rename reserved work for automatically choosing a public network from
"public" to "SNF:ANY_PUBLIC". Also add the setting description to conf
files.

660b9f3b 07/02/2013 12:32 pm Christos Stavrakakis

cyclades: Remove PUBLIC_USE_POOL setting

Remove PUBLIC_USE_POOL setting, since in order to use floating IPs, the
cyclades must be responsible for managing all IP pools.

28662998 07/02/2013 12:32 pm Christos Stavrakakis

cyclades: Fix bug in server-create command

Function for creating a server have been moved from api to logic.

0c50c760 07/02/2013 12:32 pm Christos Stavrakakis

cyclades: Check if a NIC is a floating IP.

Extend NetworkInterface model with a property showing if the IPv4
address of the NIC is a floating IP or not. Also, simplify some
relevant code.

78c165cf 07/02/2013 12:32 pm Christos Stavrakakis

cyclades: Export OS-EXT-IPS:type for floating IPs.

Cyclades API should return "floating" for the OS-EXT-IPS:type attribute.

1cbe2522 07/02/2013 12:32 pm Christos Stavrakakis

cyclades: Allowed serializations for floating IPs

816d7588 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Choose floating-ips when creating server

Extend POST /servers API call, to take an optional attribute
'floating_ips', which is a list of floating IP addresses. The server
will have one NIC for each of this addresses after the
'DEFAULT_INSTANCE_NETWORKS' and before any private networks that the...

9115d567 07/02/2013 12:31 pm Christos Stavrakakis

Distinquish between networks and Floating IP pools

Extend Network model with the 'floating_ip_pool' boolean field, to
indicate whether a Network can be a floating IP pool or not. Networks
that are floating IP pools must exist in all Backends, and so
'snf-manage backend-add' should try to add them....

64cdd31b 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Add ip pool option to network-create cmd

Add '--floating-ip-pool' option to 'network-create' management command.
Networks that have this option set must be created to all Ganeti
backends.

f8675683 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Various fixes regarding floating IPs

Fix some issues regarding floating ips introduced by rebasing branch.

2cd55da6 07/02/2013 12:31 pm Christos Stavrakakis

Fixes to tests

ece5581b 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Separate logic for networks from API

Remove code handling networks from network API views to logic.networks

e57893cd 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Do not delete networks with floating IPs

Forbid network deletion in case the network has allocated floating IPs,
no matter whether they are used by instances or not. Update
'allocate_floating_ip' API method, to take exclusive lock on network
before reserving a floating IP, to avoid race condition between deleting...

9e8be4fb 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Auto allocate a floating IP

Make 'pool' attribute of POST /os-floating-ips request optional. If
attribute is missing, the server will allocate a floating IP from one of
the available public networks.

cb66110b 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Add network policy at server create

Add 'DEFAULT_INSTANCE_NETWORKS' setting that can be used by the
administrator to define the list of networks that each server that is
created must be connected to. Each created VM will have a NIC connected
to each of these networks. This settings can include a list of network...

a95c82a9 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Add tests for add/remove Floating IP

a3d99af0 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Reserve a specific floating IP

Add extra optional 'address' attribute, in POST /os-floating-ips/
request, to allow a user to reserve a specific floating IP. This request
will fail if the user tries to allocate an IP address that is used by
anothers user VM (it will succeed if they address is already used by...

72dea98f 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Do not release floating IPs

Update 'release_instance_nics' backend function which is called to
process NIC modifications in the Ganeti backend, to not return a
IPv4 address back to pool if this address is a floating IP.

5ec446aa 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Add and remove networks from backends

Extend 'snf-manage network-modify' command with '--add-to-backend' and
'--remove-from-backend' options, to create and remove an already created
public network from a Ganeti backend.

8b41683a 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Make Floating IPs a quotable resource

Add 'cyclades.floating_ip' to quotable resources. Update helper
functions and tests to include this resource.

59183afc 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Implement /os-floating-ips API

Extend Cyclades API with /os-floating-ips endpoint. The API implements
the following calls:

  • GET /os-floating-ips: List reserved floating IPs
  • POST /os-floating-ips: Allocate a floating IP
  • GET /os-floating-ips/ip_id: Show information about a floating IP...
acda838e 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Add tests for floating-ips API

7d368e73 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Implement /floating-ip-pools API

Add Compute OS API extension /floating-ip-pools. This API implements
only the GET /floating-ip-pools, which returns the list of available
Floating IP pools. Currently, these pools are the public networks.

9ba6bb95 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Extend /servers with floating IP actions

Extend '/servers/action' API endpoint, to support 'addFloatingIP'
and 'removeFloatingIP' actions.

41a7fae7 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Major refactor to api and logic apps

Major refactor to cyclades api and logic apps that removes most code
from the api views and moves it to logic app, so that the same logic
code can be used by different apps (e.g. EC2 API). Code is moved into...

34c03a51 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Handle 'EmptyPool' in util method

Refactor cyclades code to handle 'EmptyPool' exception in
'get_network_free_address' function.

1af851fd 07/02/2013 12:31 pm Christos Stavrakakis

cyclades: Implement resize action API call

Implement resize API call, which is a POST at
/servers/<server_id>/action' with body: {"resize": {"flavorRef": <flavor_id>}}

The resize can only be performed if the disk size and disk template of
the new flavor are the same with the old one, and if the VM is in...

40d4f27d 06/28/2013 11:05 am Christos Stavrakakis

cyclades: Fix --image-name option in server-list

15c05cb7 06/28/2013 11:05 am Stratos Psomadakis

Fix regressions in snf-manage list commands

adc82764 06/28/2013 10:38 am Christos Stavrakakis

cyclades: Fix --image-name option in server-list

c4b059b1 06/28/2013 09:47 am Stratos Psomadakis

Fix regressions in snf-manage list commands

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

fe7b1d66 06/17/2013 05:41 pm Christos Stavrakakis

cyclades: Implement show extension API endpoint

Dummy implementation of /extensions/<alias> endpoint that always returns
404.

6966e8df 06/17/2013 05:00 pm Christos Stavrakakis

cyclades: Implement /extensions API endpoint

c0720b78 06/17/2013 01:35 pm Kostas Papadimitriou

cyclades: api_method_not_allowed typo's

16437e4d 06/17/2013 01:35 pm Kostas Papadimitriou

cyclades: Test invalid http method endpoint calls

c25cf3ea 06/17/2013 12:58 pm Christos Stavrakakis

cyclades: Sync API tests with latest API changes