History | View | Annotate | Download (29.2 kB)
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 serverwill have one NIC for each of this addresses after the'DEFAULT_INSTANCE_NETWORKS' and before any private networks that the...
cyclades: Add network policy at server create
Add 'DEFAULT_INSTANCE_NETWORKS' setting that can be used by theadministrator to define the list of networks that each server that iscreated must be connected to. Each created VM will have a NIC connectedto each of these networks. This settings can include a list of network...
cyclades: Extend /servers with floating IP actions
Extend '/servers/action' API endpoint, to support 'addFloatingIP'and 'removeFloatingIP' actions.
cyclades: Major refactor to api and logic apps
Major refactor to cyclades api and logic apps that removes most codefrom the api views and moves it to logic app, so that the same logiccode can be used by different apps (e.g. EC2 API). Code is moved into...
cyclades: Fix deadlock when creating servers
Fix deadlock between snf-dispatcher and backend allocator, by makingsnf-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...
cyclades: api_method_not_allowed typo's
cyclades: Add 'links' to compute endpoints
Add 'links' attribute to API responses for servers, networks, flavorsand images endpoints.
cyclades: Add 'user_id' and 'tenant_id' to API
Add 'user_id' to API responses, and add a dummy 'tenant_id' to be equalwith the 'user_id'. Also always include metadata.
cyclades: Add 'addresses' to servers API response
cyclades: Make servers response compatible with OS
cyclades: Pass disk origin for all 'ext' flavors
cyclades: Rename meta to metadata at Cyclades URLs
For compatibility with OpenStack Compute API v2, rename 'meta' to'metadata' to Cyclades API URLs. Specifically, to the following ones:
cyclades: Remove "values" term from API
For compatibility with OpenStack Compute API v2, we remove theterm 'values' from all JSON requests and responses.
Refs #3768
cyclades: Remove 'Ref' suffix from servers API
Rename 'flavorRef' to 'flavor' and 'imageRef' to 'image', to responses of/servers API. 'flavorRef' and 'imageRef' are still preserved to to requestparameters of POST /servers.
cyclades: Always add attachments to server info
Update /servers API, to include attachments to /servers responses,even if the server has no NICs.
cyclades: Move common code to seperate function
Move common between API method and management command for creating aserver to a separate function.
cyclades: Fix typo in comment
Merge branch 'feature-quotas' into develop
Conflicts: docs/dev-guide.rst
Merge branch 'feature-api-docs' into develop
Minor Conflict: docs/cyclades-api-guide.rst
cyclades: refactor code relative to commission
Refactor Cyclades code that handles commissioning with Quotaholder. Thiscommit removes the 'uses_commission' decorator. Instead it introducesthe 'issue_and_accept_commission' function that is responsible for...
Restore quotas if enqueuing job to Ganeti fails
When creating a server, we commit the VM model in DB and reserve thecorresponding quotas in Quotaholder before enqueuing theOP_INSTANCE_CREATE job (because messages from dispatcher may arrivebefore committing). In case enqueuing job to Ganeti fails we must...
cyclades: Fix typo in create_server
State of public NIC should be 'BUILDING'
Cyclades: reserve public IP after commission
When creating a server, do not reserve a public IP address beforeissuing commission to quotaholder. This bug resulted in unsynchronizedIP pools between Cyclades and Ganeti, and needed externalreconciliation to synchronize them....
Merge branch 'develop' into feature-api-docs
Add Server Create documentation
Remove VM/Network DeletedError and BuildingError
Handle these errors explicitly in the code instead of the "api_method" decorator.
Use common 'api_method' decorator to cyclades api
Update Cyclades API methods to use the new common 'api_method'decorator. Also, update all the relevant tests.
Move cloud faults to 'snf_django.lib.api.faults'
Gather all faults from all synnefo projects into common'snf_django.lib.api.faults'.
Create public NIC when creating VM
Until now, a server's public NetworkInterface was not created in the DBuntil the arrival of the message from Ganeti hooks. However, the IPv4address of the NIC is reserved before sending the OP_INSTANCE_CREATEjob to Ganeti....
pep8 fixes
Fix transaction handling when creating server
Better handling of transactions when creating a server. Commit thecreation of VM in DB, before enqueuing the job to the Ganeti backend.If communication with Ganeti fails, then the VM is deleted from the DB....
Fix image 'backend_id' for archipelago
Archipelago needs as disk origin, the hashmap of the imageinstead of its url in the backend.
Fix handling of firewallProfile action
Refs #3097
Fix variable scope
Fix metatada and personality of vmapi
Fix typos
Merge handling of ext_<provider> disk templates
Use helper function for verifying personalities
Merge branch 'origin/devel-0.13' into quota
Conflicts: snf-cyclades-app/synnefo/api/servers.py
Fix bugs from merging
Issue commissions when creating server/networks
Issue commissions to the Quotaholder when creating a VM or a Network.The VM/Network that is associated with the corresponding serial in DB.Also, the serial is marked as accepted because at the end of thetransaction the resource will be present in the DB. Even in case the...
Refactor some code to API create_server method
Use vmapi when creating servers
Use the vmapi when creating servers. Creete instance RAPI call takes theconfiguration url instead all the image parametere. The id and formatof the image are still passed, just for readability and debugging.
Also renamed params_url to config-url.
Rename nodeapi to vmapi
vmapi improvements
VM creation signal
`synnefo.api.servers.server_created` signal has been created. The signalis send for each created server. The signal sender is the created vm andone argument named `created_vm_params` is passed to the connectedcallback functions.
Sort all API list_* responses
Merge branch 'master' into devel-0.12
Conflicts: snf-cyclades-app/synnefo/api/management/commands/flavor-list.py snf-cyclades-app/synnefo/api/management/commands/server-list.py snf-cyclades-app/synnefo/api/networks.py snf-cyclades-app/synnefo/logic/rapi.py
Use select_for_update for VirtualMachines
Use select_for_update method when accessing VM objects to preventrace conditions. Also move start_action from logic to api.
PUBLIC_ROUTED minor changes
Do not allow api to create public networks and type otherthan PRIVATE_MAC_FILTERED/PRIVATE_PHYSICAL_VLAN.
Rename PUBLIC_ROUTED_USE_POOL setting to PUBLIC_USE_POOL.
Let synnefo do IP pool management only if network is private or...
Introduce per-user allocation of VMs to backends
Add BACKEND_PER_USER setting, a mapping from users to backends. This settingcan by used in order to bypass the default backend allocation process, andallocate all the new VMs of a specific user to a specific Backend.
Do not allow any API action on suspended VMs
Do not allow any modification of any administratively suspended VM through theAPI.
Merge branch 'ui-0.11' into devel-0.12
Include deleted networks in get_flavor_info
Return ServiceUnavailable when pools are depleted
Return ServiceUnavailable, instead of OverLimit, when pools of bridges,mac-prefixes or IPs run out of resources.
Merge branch 'devel-0.12' into ui-0.11
Handle every exception in manually transactions
Improve exception message when no backends
Merge branch 'devel-0.11' into ui-0.11
Conflicts: snf-cyclades-app/synnefo/db/models.py snf-cyclades-app/synnefo/logic/backend.py snf-cyclades-app/synnefo/ui/static/snf/js/models.js
Fix bug when not using pool for public networks
Change logging levels
Add extra logging
Perform allocations in separate transactions
Add ForUpdateManager to the Backend model, in order to guaranteeexclusive order when allocating a VM.
Use manual transactions when allocating Backend and public IP for a newVM, since these allocations need exclusive access (SELECT..FOR UPDATE)...
Support multiple public networks in UI
Encapsulate in nic dict a public flag (network.public) andremove twisted oldstyle identification way (network_id == 'public')for retrieving public interfaces.All network references are done via their network_id....
Implement multiple public networks
Implement multiple public networks in order to support:- different public networks per backend- non-consecutive IP ranges in each backend
To support this, public networks are treated different from privateones. Namely, they are correlated with one backend (and so have...
Api changes, additions for vm diagnostics
- Change /servers/detail to include the last diagnostic message for each vm in the api response.- Add new /<vm_id>/diagnostics api endpoint which returns the list of the specified virtual machine diagnostic messages.
Fix servers api list response
filter out deleted vms !!!!!!!
Fix servers api response
do not filter out deleted vms if valid changes-since parameter is set onthe request. This allows ui application to be able to identify and removedeleted vms.
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.
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.
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
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.
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.
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)...
Use lib.astakos instead of our own middleware
Switch to the logging middleware
Fix metadata rendering
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