Setting for using IP Pool to public network
Introduce new setting 'PUBLIC_ROUTED_USE_POOL', to indicate whethersynnefo will be responsible for the IP management of the public network,or this responsibility will be delegated to Ganeti.
Consider cpu ratio when allocating vm's
Fix case of empty address pool
Transaction on create_instance
Limit allowed network size
Limit the size of networks that users can create, since big IPpools can have negative impact on performance. Allowed networksize is controled by 'MAX_CIDR_BLOCK' setting.
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...
Increase the size of backend password_hash
Fix IP pool exceptions
Add transaction control to API methods
Specially for create_instance and create_network methods, since aVirtualMachine, Network object is created before sending the requestto the backend.
Use ForUpdateManager to Pool objects
Display IP pool map in network-inspect command
Release IP addresses when nics are destroyed
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,...
New management command for creating a network
Create a management command for creating networks. Also removethe initial_data.json, since it is currently not necessary.
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
Filter deleted entries when changes-since is used
Modify list_networks and list_servers to filter deleted entries whenif-modified-since HTTP header is used, because deleted entries can beupdated after deletion through the reconciliation mechanism.
Rename management commands
Encrypt Backend password
Use cipher to encrypt the passwords of the Ganeti backends in the DB.Encryption/decryption is based on a configurable key, defined by theENCRYPTION_KEY setting. After modifying this setting, synnefo will beunable to decrypt already stored passwords, and passwords must be...
Handle bridge/mac-prefix pool exhaustion
Raise Overlimit exception when either bridge or mac-prefix poolis exhausted. Also prohibit public network creation.
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...
Update servers/networks responses for new API
- Reponses for servers and netowrks details (list or solo) are nowconsistent to recent backend changes.- Methods get_nic_from_index and construct_nic_id have been created- Syntax for nic removal from network/vm has been adjusted
When creating network, the label subnet can now be cdir in the json request
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.
Fix modifynetwork management command
check available network status options based on Network.OPER_STATES
Cyclades UI integration with the new networks api
- Handles nic connections instead of vms. New NIC model and NICs collections created to handle the NIC api logic. NIC models get updated on each vms/networks api call.- New private network creation form....
Update cyclades ui jquery lib to 1.7.2
Implement network reconciliation
New management commands to inspect network/server
Update management commands for new-style networks
Common functions for instance/network backend name
Fix use of network name prefix
Release resources when deleting network
Set as available in the pool the bridge and mac prefix that wasused by the deleted network.
Fix bug about unknown network in instance's nics
Fix management commands
- Fix bug in backend_add- Display backend_name in network_inspect command
Fix bug in networks api
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.
Print warning about subnet value during migration
Set index of NetworkInterface model to not null
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
Temporary API modification for new style networks
Major modifications to Network model
Since Ganeti version 2.6, Ganeti is aware of private networks. We takeadvantage of this by propagating network handling to Ganeti. Networkmodel is expanded to include information about the type of network(public routed, physical vlan, private filtered), subnet, gateway, dhcp,...
Implement BackendNetwork model
Create a new model, to represent the state of each network in eachbackend.
Remove stale save's in db
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
Create Backend model to represent a ganeti backend
- Create Backend model holding info about credentials, status and resources- Add Backend as foreign key to VirtualMachine- Create a cache of Backend clients (RAPI) for better performance
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.
Fix white space and PEP8
Merge branch 'snf-tools'
Initial commit to snf-tools
burnin.py is now PEP8 compliant
Change default log-folder and path handling
Added log folder option / Now delete-stale deletes also stale networks / Fixed failed testcases output not "None"
Fixed oob console test/Delete stale vms in each run
Output log in folder per image/Flavor argument now working/Fixed networking testcase
Fix default cyclades ui UI_MEDIA_URL setting
Minor fixes
Added more logging messages for user
Merge branch 'master' into burnin
Output now stored in folders for each burnin run
Remove stale pid lockfiles on daemon invocation
Various fixes about fabric usage
Using fabric only to setup interfaces
Update setting files
Rename management command
Merge branch 'simplequotas' into queues+minor_net
First formatted output
Splitting burnin to multiple modules
Update Changelog for snf-cyclades-app
Also improve documentation of quota settings.
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
Merge branch 'master' into new_queues
Conflicts: snf-cyclades-app/synnefo/logic/callbacks.py
Fixed sudo/su issues
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...
Fixed metadata users handling
Fix create view image selection, Refs #2487
Only reset image selection on create view initialization to be able tokeep image selection between subviews transitions.
Console popup window fix for safari, Refs #2463
It seems that Safari allows popup windows only if the window.open callis made from within an html element click event context. Otherwise itsbehaviour is based on "Block Pop-Up Windows" setting, which when enabled...
Public SSH keys improvements
- use 'id_rsa' as the filename for the downloaded private key, Refs #2461- changed the name of the auto generated public key
Keep common default settings consistent
gtools provides common name settings with cyclades app to connect to therabbit mq server. It is wise to keep consistency for the default valuesof common settings.
Prepend namespace for named urls of ui
to avoid conflicts with other applications named urls.
Improve wording on vm create view
More explanatory info for the selection of public keys that will getcopied to the created vm on step 3 of vm create view. Refs, #2462
Display stats period selection in ui
taking advantage of the urls for weekly graphs that stats service provide.Refs #1791
First complete test finished
Add management command to inspect queue messages
Refactor common code in dispatcher's callbacks
Remove unused code
Remove old code used for reconciliation, as the reconciliation mechanism haschanged