cyclades: Create network in backend if missing
Automatically create a network in a Ganeti backend if missing.Currently, this was done only for private networks. This commit changesthis to be done for any kind of networks.
cyclades: Default name for ports and subnets
cyclades: Set external_router for public networks
Set 'external_router' attribute of created networks to True, if anetwork is a public network.
cyclades: Add migratrion for external_router field
Add data migration for 'external_router' fields. This field is set toTrue for all 'public' networks.
Revert "cyclades: Add /routers api"
This reverts commit 69dadbe4e3223dc4d8cbaa5b09dde755c15679ed. Temporaryremove the /routers API.
cyclades: Fix POST /ports
Modify port create api call. If the user gives a public networkhe has to give a valid floating ip as well.
cyclades: Use existing IP when creating port
Extend port creation with the option to use an existing IPAddress. Thiswill be used to create a port with an existing Floating IP. Also, extendport-creata management command with the '--floating-ip' option.
cyclades: Fixes to port-create command
Verbal and code-style fixes to port-create command.
cyclades: PEP8 fix
cyclades: Fix snf-manage floating-ip-list
A minor fix to the snf-manage floating-ip-list command to complyto the new models
cyclades: snf-manage floating-ip-attach
snf-manage floating-ip-attach <address> --machine <server_id/router_id>
cyclades: snf-manage floating-ip-dettach <address>
cyclades: Fix bug in snf-manage network-modify
There was no field floating_ips, ips instead.
cyclades: Add /routers api
cyclades: snf-manage floating-ip-release <address>
cyclades: Add a port deletion test
cyclades: Fix snf-manage port-create command
In order to create a new port on a server you give --server <server_id>In order to create a new port on a router you give --router <router_id>
cyclades: Start the snf-manage floating-ip commands
cyclades: Add snf-manage subnet-list command
cyclades: Bug fixes in subnets
cyclades: Update api/subnets.py to use logic files
cyclades: move subnets.py from api to logic
Move api/subnets.py to logic/subnets.py, for further code refactoring
cyclades: Add get_subnet in management/common.py
cyclades: Add message to exceptions
cyclades: Fix bug in port-inspect command
cyclades: Fix network inspect management command
cyclades: Add backend code to Ports API/logic
Add backend code to create and remove ports from Ganeti backends. Alsoadd some imporovements and fixes to logic, API code and managementcommands.
cyclades: Fix bug when creating networks
cyclades: PEP8 fixes
cyclades: Hack-ish commit for old IP pools
cyclades: Update subnet tests
cyclades: s/slac/enable_slac in api/subnets.py
cyclades: Fix a typo in api/subnets.py
cyclades: Various fixes in api/subnets.py
cyclades: Fully support ip pools in subnets
cyclades: Add snf-manage port-inspect command
This command will provide info about the port concerning the DB andthe Ganeti state. For now, it provides only DB info.
cyclades: Add snf-manage port-remove command
cyclades: Add logic ports.py
Created a new file for ports in logic directory. This will havethe code about port manipulation in the backend. For now it is justused for db filling.Use the new function 'create' in the ports API.
cyclades: snf-manage port-create
cyclades: Fix some network management commands
cyclades: Refactor backend code for new networks
cyclades: Add two functions to validate IP Pools
cyclades: Neutron API, update tests for IP Pools
cyclades: Update subnets.py to support IP Pools
Update subnets.py to use the two functions introduced in commit 2a1e6fb
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_dhcpfield, only the slac one will be used. If no slac field is found for anIPv6 subnet, the field enable_dhcp will be used instead....
cyclades: Fix the os-floating-ips API
Rewrite the of-floating-ips API to match with the new DB schema.
cyclades: Fix getting value from pool
If an address is specified, check that the value belong to the pool,else raise InvalidValue.
cyclades: Create IPv4 pool when creating network
Create IPv4 address pool when creating the network. This is a temporarycommit to make logic network work, since subnet and pool creation mustbe moved out of the network creation part.
cyclades: Add method to get ip stats to network
Extend Network model with a method to get the number of free and totalIPv4 addresses of the network. Also, add method to IPAddress model torelease its IPv4 address if any. Finally, update backend-list management...
cyclades: Refactor code for allocating IPs
Refactor code that was used for allocating IP addresses and creatingNetworkInterfaces. The new code is more suitable to the new DB schemawhere each network may have many IPv4 subnets and each subnet mayhave many IP pools. Also, the new functions are using prefetch related...
cyclades: Add option to get value from pool
Extend PoolManager 'get' method to also take as argument a value toget from the pool. If the value is already reserved, then aValueNotAvailable exception will be raised.
cyclades: snf-manage port-list
cyclades: Modify snf-manage network commands
Modifications according to the new API
cyclades: Add more port tests
cyclades: Fix typo and tests
cyclades: Optimize DB queries of /servers API
Use 'prefetch_related' attribute of Django queryset to prefetch theNetworkInterface and IPaddress objects that are related with aVirtualMachine object. Also, modify functions that operate on serverNICs and IPs, to to use only the prefetched objects, which means that...
cyclades: Syntactic refactor ports
cyclades: Fix code for networks logic and API
cyclades: Fix and add new tests for /networks
Also, delete tests for old networks.
cyclades: Fix quotas tests
cyclades: Update api/subnets.py and tests
Commit 4e3a667 introduced a new model for Subnets, this commit containsthe following changes:
cyclades: Fix helpdesk code and tests for new nets
cyclades: Fix DB tests
cyclades: Fix indentation, PEP8 and wrong imports
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 thenecessary refactor for making tests for server API calls succeed.
Integrate /networks API call
cyclades: Add /ports api call
cyclades: Make API server tests pass
cyclades: Make IPPool manager work for subnets
Temporary commit to make IPPool manager work. This will work only ifthere is only one allocation pool for each subnet.
cyclades: Change 'null' attribute of Subnet models
cyclades: Add missing migration file
cyclades: Add api/subnets.py
cyclades: Use a constant for name length of models
Use a constant for declaring the max length of the name of amodel
cyclades: Replace FloatingIP with IPAddress
This commit just replaces all references to FloatingIP objects withreferences to IPAddress object, in order to be able to just load thecode. But the code is left unchanged, so all tests will fail.
cyclades: Update models_factory
Update models factory to match the new models.
Signed-off-by: Marios Kogias <marioskogias@grnet.gr>Signed-off-by: Dionysis Grigoropoulos <dgrig@grnet.gr>
cyclades: Remove unused fields and model from DB
Remove unused 'ipv4' and 'ipv6' attributes from NetworkInterface modeland totally remove FloatingIP model. This information has been movedin commit 972a428 to IPAddress model.
cyclades: Data migration from NIC to IPAddress
Migrate db data from NetworkInterface model to IPAddress model.
cyclades: Major refactor on NIC model
Major refactor on db models concerning NetworkInterface models. A newtable, namely 'IPAddress' has been created to represent an IPAddress(IPv4 or IPv6). Each IPAddress is related with a network and the subnetfrom which it has been allocated. Also it contains 'floating_ip' attribute...
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 modelin commit 779c887. Also extend model with the 'external_router'...
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 thepool belongs to.
Signed-off-by: Dionysis Grigoropoulos <dgrig@grnet.gr>
cyclades: Add DB data migration for subnets
Migrate attributes from old Network model to new Subnet model.
cyclades: Do not delete FIPs if VM is deleted
Remove on delete CASCADE for floating IPs if the VirtualMachine isdeleted.
cyclades: Include 'index' when comparing NICs
cyclades: Clear FloatingIP when deleting NIC
Override 'delete' method of NetworkInterface model, to clear the'machine' flag of the corresponding NIC, if any.
cyclades: Ignore Ganeti NICs with unknown ID
Do not process Ganeti NICs that do not have a valid ID and so areunknown to Cyclades, because processing these NICs would require tocreate them in DB and then rename them in Ganeti with the correspondingidentifier....
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.
cyclades: Change format of 'attachment' attribute
Change the format of the 'attachment' attribute. Until now, eachattachment had an identifier of the form 'nic-$vm_id-$nic_id'. Thiscommit changes the identifier to just '$nic_id', since from now onis unique for the lifetime of a NIC.
cyclades: Fix case where 'dfree' is None
If Ganeti has not enabled 'plain' or 'drbd' disk template, then itreports 'dfree' as None. Fix this corner case by treating None as 0.
cyclades: Add 'ip_type' attribute to NIC
Extend NetworkInterface model with the 'ip_type' attribute to showwhether the IP is a floating or fixed.
Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
cyclades: Use UUIDs to update VM NICs
Callback functions of snf-dispatcher updated the NICs of a VM bydeleting all NICs from DB, and creating the new NICs that were describedin the message. However, since NICs have UUIDs, this is no longerrequired. This commit update callbacks to update the NICs based on their...
gtools: Make eventd send job fields
Make snf-ganeti-eventd send 'job_fields' for instance and networkopcodes, and modify the corresponding backend functions andsnf-dispatcher callbacks.
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'.
cyclades: Make reconciliation timeouts constants
Remove hard-coded timeouts from code and make them constants. Also donot perform reconciliation for recent building NICs.
cyclades: Use NIC uuid when deleting NIC
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 commitupdates Synnefo to refer to devices by their name. Synnefo will set thename of the devices which will be a UUID. We do not use Ganeti's UUIDs...
Remove deprecated network type in ganeti
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Pass network type info in tags during create
Remove hotplug from InstanceCreate
New style format for modifying a NIC
cyclades: fix typo in snf-dispatcher