Merge branch 'master' into ui-0.5
Update network objects after nic modifications
Proper prefix stripping
Fix failing reconciliation unit tests
Add some Ganeti stats on admin home
Refs #849Refs #995
Update README.admin, add doc on reconciliation
Minor change to docstring
Overhaul reconciliation mamagement command
Detect the following problems: * Detect stale DB servers without corresponding Ganeti instances * Detect orphan Ganeti instances, without corresponding DB entries * Detect out-of-sync operstate for DB entries wrt to Ganeti instances...
Minor PEP8 fixes, minor fixes to tests
Do not raise ValueError on ganeti-create-progress
Do not raise a ValueError if an out-of-orderganeti-create-progress notification is received.
Synchronouse sending of emails in invitation code
Merge branch 'invitation-fixes' of https://code.grnet.gr/git/synnefo into invitation-fixes
Conflicts: logic/dispatcher.py
Minor pep8 fixes to logic/dispatcher.py
Convert msg routing keys to be prefixed by BACKEND_PREFIX_ID
Improve logging and error reporting in callbacks
Add DEBUG-level logging and make exception reportingmore verbose in dispatcher callbacks.
Improve logging in logic/dispatcher.py
Don't retry forever to reconnect
Error handling here adds nothing
A bit more well defined error messages
Force the connection obj to re-initialize on error
When an error occurs to the AMQP connection, the code will automaticallyattempt to re-establish the connection. Before this fix, it used thesame (stale) connection object. The fix deletes the object explicitely....
Verbose exception in case of email queuing error
Method to set the auth token expiration programmatically
Make dispatcher log to stderr when in debug mode
Add a logging handler to the dispatcher that sends logging output tostderr when in debug mode (-d is enabled).
Allow ganeti-create-progress to exceed 100%
Fix handling of ganeti-create-progress notifs
Fix handling of ganeti-create-progress notifications: * Fix typo * Fix logic dispatcher to properly log and survive exceptions thrown by the logic layer when processing incoming notifications * Minor PEP8 fixes
Update handling of 'ganeti-create-progress' notifs
Update handling of 'ganeti-create-progress' notification messages: * update format of 'ganeti-create-progress' notifications * update relevant unit test accordingly * numerous PEP8 fixes in logic and api test code
Move queue declaration to the dispatcher
Move queue declaration and initialization to the dispatcher since the dispatcher is the only consumer of this information.
Refs: #809
Don't trigger reconciliation for deleted/suspended VMs
Move queue initialization to its own method
...in order for other standalone commands (drain, purge, etc) to be able to use thedeclared queues
Process build progress update notifications
Catch build progress update messages from AMQP, process and store them in the database. Test to store the processing operations
Refs: #885
Fix reference to inexistent setting
Fix reference to setting GANETI_OS_PROVIDERwhich has been become part of GANETI_CREATEINSTANCE_KWARGS.
Email related changes
-Use Django's DEFAULT_FROM_EMAIL configuration setting instead of custom setting-Send invitations from the DEFAULT_FROM_EMAIL account
Make RAPI CreateInstance() arguments configurable
Make RAPI CreateInstance() arguments deployment-specific.Add the GANETI_CREATEINSTANCE_KWARGS setting, which allows the administratorto set arbitrary arguments to RAPI CreateInstance().
Also add initial version of README.Upgrade, detailing...
Improve user support
Refs #827
Merge branch 'api-current'
Add unit tests for process_op_status()
Add unit tests for all supported code paths inlogic/backend.py:process_op_status(), for the various notificationsof type 'ganeti-op-status'.
Also catch the exception raised when a ganeti-op-status notificationcontains an opcode not handled by Synnefo.
Handle removing machines in ERROR properly
Set the VM deleted flag when receiving a failure notification for a GanetiOP_INSTANCE_REMOVE operation, if the server is in ERROR state, since nocorresponding Ganeti instance backend exists in this case. Fixes #799.
Only receive OP messages for the specific BACKEND_PREFIX
Also a minor correction in the debugging queue output
Update yet again README.deploy for vncauthproxy
Include complete information on installing vncauthproxy andbuilding Debian packages.
Conflicts: invitations/invitations.py
Merge branch 'faidon/misc-fixes'
Conflicts: settings.d/50-invitations.conf
Don't start the DEBUG queue when DEBUG mode is off
Merge branch 'api-current' of https://code.grnet.gr/git/synnefo into api-current
Use log.exception to report exceptions
Progress reporting on queue draining
Default log configuration: syslog on Linux
Refs: #779
Make Ganeti disk template a configurable setting
Make the disk template to use for Ganeti instances (e.g., 'plain'or 'drbd') a configurable setting in settings.d/20-api.conf,fixes #777.
Set hv parameter serial_console=False explicitly
Be explicit about Synnefo-controlled instances havinghypervisor parameter serial_console set to False, so that theRAPI GetInstanceConsole() call returns consoles of kind 'vnc',fixes #785.
Remove RAPI GetInstanceConsole() call
Remove RAPI GetInstanceConsole() call, because it returns apotentially unusable endpoint based on cluster-wide vnc_bind_address,usually 0.0.0.0 or 127.0.0.1. Until this is fixed on the Ganeti side,we construct a console info reply based on the primary node and network...
logic: import settings properly
Instead of importing synnefo.settings directly, import settings fromdjango.conf as it should.
Handle and log system exceptions on invitation send
Make server deletion complete asynchronously
Make server deletion complete asynchronously, by only settingthe deleted flag for an instance of the VirtualMachine model whenan OP_INSTANCE_REMOVE operation completes successfully at the backend.
This means that DELETE /servers/id returns HTTP 204, the server...
Enforce flavor-specified disk size for new VMs
Enforce the flavor-specified disk size when creating a new VM.Introduce the new IGNORE_FLAVOR_DISK_SIZES setting, which makes the API alwayscreate VMs with 4GB or 14GB disks.This is useful in development deployments where disk space is scarce.
More robust email sending
-Synchronous send message function returns Boolean to indicate success or failure-Queued emails that were not sent are not removed from the queue
Configurable number of invitations per invitation level
Refs: #439
Fix minor error in variable naming
Dispatcher support for draining queues
Refs: #719
Introduce queue mgmt functions
Introduces the following three commands to the dispatcher, used to process queue declarations and stale messages
--purge-queues--purge-exchanges--drain-queue (not fully implemented yet)
Development: Allocate a 14GB disk for Windows VMs
Merge branch 'ui-0.5'
Merge branch 'api-current' into helpdesk-gui
Merge branch 'api-current' into ui-0.5
Make the dispatcher refresh on tag updates
Make a dummy ModifyInstance call when changing instancetags in order to force process_net_status to be called onthe dispatcher.
Logging configuration for the rapi logger
Conflicts: aai/shibboleth.py
Fix problem with python-daemon incompatibilities
python-daemon 1.6 changed the way it handles pidfile imports so goingback to 1.5.5 (included in Debian squeeze) breaks the dispatcher.Document the exact dependencies in deployment and ci files.
Correct import from pidlockfile
Merge remote-tracking branch 'origin/api-current' into ui-0.5
Conflicts: api/util.py logic/backend.py
Use a default firewall profile on public networks
Uses settings.DEFAULT_FIREWALL_PROFILE in case an instance has no firewall tags defined.
Refs #659
License headers for various files
refs #581
Make pid file setting work for real
Create a pid file outside the daemon context, make sure it is deleted onshutdown, offer option to set it from the cmdline
Move logging configuration to a module
Configuration for syslog, app-wide logging
Change configuration to print logs to the console
Take care of pidfile generation
Daemonization + externally configured logging
Conflicts: logic/backend.py
Merge branch 'logging' into api-current
Update firewall profile in the callback
Refs #527
Extend net notifications to include IPv6 addresses
Include support for autogenerated public IPv6 addresses,extend the logic layer accordingly:
Use iallocator for CreateInstance() RAPI call
Do not specify the Ganeti node in CreateInstance() RAPI calls,allow Ganeti to use an iallocator to determine instance placement.Also make minor PEP8-related fixes to logic/callbacks.py.
Per user invitation limits
refs: #705
Conflicts: settings.py.dist
Add a PROTECTED firewall profile
Replace custom email send code with Django's mailer
Thanks to [faidon] for the tip
Merge branch 'master' of https://code.grnet.gr/git/synnefo into api-current
Conflicts: api/images.py api/networks.py contrib/ganeti-hooks/kvm-vif-bridge db/fixtures/images.json db/models.py logic/backend.py logic/tests.py settings.py.dist tools/cloud
Add initial support for firewall profiles