Reconciliation for network IP pool management
Reconcile the contents of each networks IP pool by comparing itwith combination of IP pools of all ganeti backends.
Add extra option for detecting conflicting IPs.
Implement model manager using row-level db locking
Implement ForUpdateManager that uses SELECT .. FOR UPDATE statement inorder to acquire row-level exclusive locks to DB. Essentially thismanager backports the select_for_update() method that is implemented in...
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,...
Fix error state of BackendNetwork
Implement IP management
Delegate IP management to synnefo, in order to be able to allocate IPaddresses accross multiple Ganeti backends. This is achieved by creating aPool of IPs for each Network, in the form of a bitarray, which is storedin the DB as a base64 string....
Update network settings
Rename management commands
Add dirty bit to NetworkInterface
Extend NetworkInterface model with a dirty bit, indicating whetherthe index of the NIC is consistent with the one in Ganeti. This flag isset when deleting a NIC, and is switched off after processing thenotification from Ganeti. Removing a NIC with the dirty bit on is not...
Revert "Fix bug in dispatcher callback"
This reverts commit 5d40a128fb593ed641400c462f0e00a1b457f76e.
Remove machine if ganeti job fails
Set the VM deleted flag when receiving a failure notification for aGaneti OP_INSTANCE_REMOVE operation, even if the VM operstate is notERROR. The server may not exist in the backend not only because thecreation failed, but also because a remove notification was lost.
Implement network reconciliation
New management commands to inspect network/server
Common functions for instance/network backend name
Fix use of network name prefix
Fix bug about unknown network in instance's nics
Fix management commands
- Fix bug in backend_add- Display backend_name in network_inspect command
Bug fixes concerning networks
Fix bug in dispatcher callback
During handling of ganeti-op-status messages, state was set to erroronly if the the opcode was OP_INSTANCE_CREATE. This resulted tovm's never being deleted, if they did not exist in Ganeti.
Add backend method for removing a vm's nic
Modification in logic for new-style networks
Synchronize networks when adding a new backend
Rename backend_create to backend_add
Implement BackendNetwork model
Create a new model, to represent the state of each network in eachbackend.
Create network queues and refactor dispatcher
Implement backend allocator and management command
New module implementing instance allocation to one of the availablebackends. Allocation is performed based on memory and disk utilization.Statistics for each backend are stored in DB and updated periodically....
Fix issues concerning reconciliation
Use the Backend client instead of global RAPI
Replace use of global RAPI client, with the cached client from theVirtualMachine or Backend model.
Dispatch network actions to all backends.
New management commands concerning backends
- Create command to create a backend (snf-manage backend_create)- Create command to modify a backend (snf-manage backend_list)- Create command to list backends (snf-manage backend_modify)- Modify listservers command to display the backend that hosts the VM
Rename backend_id to backend_vm_id
Rename backend_id field of VirtualMachine model to avoid conflict between thebackend that hosts the VM and the id that the VM will have on the backend.
Remove stale pid lockfiles on daemon invocation
Rename management command
Merge branch 'simplequotas' into queues+minor_net
Simple per user quota mechanism for networks/vms
- New dict setting VMS_USER_QUOTA to allow setting per user quota (overrides MAX_VMS_PER_USER setting)- Private networks quota mechanism (based on MAX_NETWORKS_PER_USER and NETWORKS_USER_QUOTA settings)...
Refactor AMQP client
Remove messages that can not be handled from queue
Temprory fix for removing accumulated messages from RabbitMQ. Currentlysnf-ganeti-eventd produces messages that can not be handled fromsnf-dispatcher (e.g messages not concering an instance). These messages...
Add management command to inspect queue messages
Refactor common code in dispatcher's callbacks
Minor fixes
Remove unused code
Remove old code used for reconciliation, as the reconciliation mechanism haschanged
Add prefix to debug queue
Small refactoring in getting vm id
Clean up dead code
Update modules interacting with AMQP
Update all modules which are interacting with the RabbitMQ messaging system touse the AMQPClient in order to use highly available queues in active/activemode.
Extend messages to include a unique identifier in order to handle...
Minor change in rapi call
Ganeti 2.5 needs a tupple of length 3 for nics modifications.So in ModifyInstance rapi call we pass (add, -1, {..}) for nis.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Take advantage of ganeti hotplug
No race condition. No need for ther NetworkInterface to have anoperstate. Hook runs during instance-modify and depicts the currentlyexisting nics. No reboot needed modification to take place.
Later in mutliple backend mac prefix handling should be done by synnefo....
Delete VM nics on update path
Delete VM nics when a message of type OP_INSTANCE_REMOVE has been receivedfrom ganeti, and not when doing the RAPI call.
Simplify disconnecting vm from network
Use the new option of Ganeti, to remove a specific nic.
Use 'network' instead of 'link'
- Rename GANETI_PUBLIC_LINK to GANETI_PUBLIC_NETWORK- modify create_instance of backend module
Remove --detect-orphan-{servers,networks}
They have to depend on Astakos, move their functionality externally.
Remove unused imports
Add --detect-orphan-{servers,networks}
Switch to the logging middleware
Remove email queues from dispatcher
Remove legacy code from dispatcher
Remove obsolete files that were restored due to merge
Merge remote-tracking branch 'origin/master' into astakos-integration
Conflicts: runtests.sh snf-cyclades-app/synnefo/aai/__init__.py snf-cyclades-app/synnefo/aai/fixtures/auth_test_data.json snf-cyclades-app/synnefo/aai/middleware.py snf-cyclades-app/synnefo/aai/models.py...
Renamed snf-app to snf-cyclades-app