cyclades: No commission for public networks
Do not issue commission for public networks, since they do not have anowner.
cyclades: Fix exception message
cyclades: Consider IPv6 only networks in allocator
Backend allocator excludes backends that do not have a free IPv4address. Since, from now on, not all instances are connected to a publicnetwork, this check is only needed when 'SNF:ANY_PUBIC' network is used.
cyclades: Implement NetworkReconciler class
Refactory network reconciliation. Implement NetworkReconciler class tohold all reconciliation functions.
cyclades: Move NetworkReconciler to reconciliation
Move NetworkReconciler class from network-create command toreconciliation module.
cyclades: Add tests for network reconciliation
cyclades: Simple code refactoring
cyclades: Support IPv6 only networks
Make Cyclades support IPv6 only networks. Such networks will havethe 'subnet' attribute set to None, in the same way that IPv4 onlynetworks have the 'subnet6' attribute set to None.
Because currently Ganeti does not support IPv6 only networks, we create the...
cyclades: Add tests for IPv6 only networks
Add tests to check creation and usage of IPv6 only networks. Tests alsocover creation of other type of networks.
cyclades: Refactor code relative to networks
Move code checks from network-create management command tologic/networks.py.
Also create common decorator for management commands to convert apifaults to command errors.
cyclades: Refactor logic tests
Create tests module to hold all tests for logic.
Merge branch 'hotfix-0.14.2' into develop
Conflicts: Changelog snf-astakos-app/astakos/im/messages.py snf-astakos-app/astakos/im/views/target/__init__.py snf-cyclades-app/synnefo/logic/backend.py snf-cyclades-app/synnefo/logic/management/commands/reconcile-servers.py...
cyclades ui: Prefer os meta to identify connection user
How vm connection user gets resolved:
- Use the last user in `users` vm metadata if exists- Use the last user in `users` vm image metadata if exists- Use root if vm's image osfamily metadata is Linux...
cyclades: Move tests in tests directory
cyclades ui: Update OS images names
use libguestfs naming convention
redhat -> rhelsuse -> opensuse (also cloned as sles)
plankton: Make pithos backend pool size a setting
Make the pool size of the pithos backends a configurable setting,namely PITHOS_BACKEND_POOL_SIZE.
cyclades: pep8 fixes
cyclades: Add size and free to floating-ip-pools
cyclades: Fix reconciliation of building vms
When reconciling a building vm, you first have to reconciliation it'screation and then it's operstate. Otherwise it is possible to end uphaving wrong quotas.
pep8 changes
Merge branch 'develop' into feature-floating_ips_ui
Conflicts: snf-cyclades-app/synnefo/plankton/backend.py
cyclades ui: Allow destroy action on all vm states
cycaldes ui: Locally reserve IP address assigned to created vm
in order to avoid conflict errors on repetitive vm creates
Revert "Fixed Image:Remove"
This reverts commit a111b19aa011304f624d649d994086310400fada.
cyclades ui: IP addresses vm creation step fix
Filter out ip addresses which pending for machine connection.
cyclades ui: Conditionally disable connect to vm IP actions
when IP's popup is opened from the vm create view.
cyclades ui: IP addresses overlay improvements
- Wording improvements- Icon for the connect to machine action
cyclades: Fix corner case in snf-dispatcher
Same as commit 0514662, but for servers.
cyclades: Fix typo bug in management command
cyclades: Add disk template to flavors fixture
PEP8 fixes
cyclades: Common filtering based on changes-since
Add 'filter_modified_since' function in snf_django api utils, forparsing 'changes-since' HTTP parameter and filter the DB objects thatare updated after that date. Otherwise the deleted objects are returned.
cyclades: Fix type bug in network-create cmd
Merge branch 'feature-pithos-atomic-api' into develop
cyclades: update plankton to commit pithos backend
The Pithos backend no longer auto-commits after each method invocation,therefore plankton needs to handle transactions itself with withpre_exec() and post_exec() methods.
cyclades: fix omitted plankton image properties
cyclades: Fix type error
Create network may return a list of job IDs.
cyclades: Fix wrong unit of ram
Fixed Image:Remove
cyclades: Parallel server reconciliation
Major refactor to reconcile-servers management command to make it workin parallel for each backend. Also, removed all --detect options, anddetect all incosistencies by default.
cyclades: Add tests for server reconciliation
Delete network from DB when job fails but the action of network isDESTROY. This case appears when someone tries to remove a network thathas been deleted from Ganeti backend, but not yet from DB.
cyclades: Fix misleading message in network-remove
cyclades: Fix typo in reconciliation
reconciliation: Strip Ganeti IP addresses
Strip spaces from Ganeti IP addresses, since they are not automaticallyignored in newer versions of ipaddr.
plankton: Add 'created_at' when registering image
Add 'PLANKTON:created_at' metadata to Pithos files when registering themas images to plankton.
reconciliation: Get servers from DB ater ganeti
Change server reconciliation, to get the instances from DB after gettinginstances from Ganeti, to decrease the possibility for races.
cyclades ui: Remove development statements
cyclades: Networking step in machine create view
Introduce an additional `machine network setup` step in machine createoverlay. Through this step user can select ip addresses/private networksthe machine will be assigned/connected to.
cyclades ui: Static files cache invalidation
include current synnefo version as a parameter to all static files urls to avoidbrowsers from using cached content between different synnefo versions.
cyclades: Public IP's overlay in UI
- Introduce a new overlay for IP addresses management (create, remove, connect, disconnect).- The overlay is accessible from the UI's options menu.
cyclades: Handle introduced ``SNF:task_state`` field
- Use it to identify if machine is in a transitioning state (a previously executed task is pending to be completed).- Disable all actions when field.- Backwards compatible. If no field is set the UI falls back into predicting...
cyclades: Integrate machine resize action in UI
- Action gets triggered from edit links which appear next to the cpu/memory details icon/single machine views.- Handle inability to perform resize action based on vm state by displaying a warning when machine is in running state....
cyclades: Add migration file
Add migration file for floating IPs and VM task state.
Fix exception message when trying to connect an instance to a non-activepublic network.
plankton: Modular plankton backend class
Enable configurable plankton backend using setting ``PLANKTON_BACKEND_MODULE``.
Add ``synnefo.plankton.backend.JSONFileBackend`` which uses a json file asthe store of returned images. The backend should only be used in development...
cyclades: Wrap diagnostic creation in transaction
Fix bug in snf-dispatcher causing wrong updates of VMs from ganeti.Creation if instance diagnostics must run inside a transaction, becauseotherwise, the lock of the vm (select_for_update) is released too early....
cyclades: Rename "public" to "SNF:ANY_PUBLIC"
Rename reserved work for automatically choosing a public network from"public" to "SNF:ANY_PUBLIC". Also add the setting description to conffiles.
cyclades: Remove PUBLIC_USE_POOL setting
Remove PUBLIC_USE_POOL setting, since in order to use floating IPs, thecyclades must be responsible for managing all IP pools.
cyclades: Fix bug in server-create command
Function for creating a server have been moved from api to logic.
cyclades: Check if a NIC is a floating IP.
Extend NetworkInterface model with a property showing if the IPv4address of the NIC is a floating IP or not. Also, simplify somerelevant code.
cyclades: Export OS-EXT-IPS:type for floating IPs.
Cyclades API should return "floating" for the OS-EXT-IPS:type attribute.
cyclades: Allowed serializations for floating IPs
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...
Distinquish between networks and Floating IP pools
Extend Network model with the 'floating_ip_pool' boolean field, toindicate whether a Network can be a floating IP pool or not. Networksthat are floating IP pools must exist in all Backends, and so'snf-manage backend-add' should try to add them....
cyclades: Add ip pool option to network-create cmd
Add '--floating-ip-pool' option to 'network-create' management command.Networks that have this option set must be created to all Ganetibackends.
cyclades: Various fixes regarding floating IPs
Fix some issues regarding floating ips introduced by rebasing branch.
Fixes to tests
cyclades: Separate logic for networks from API
Remove code handling networks from network API views to logic.networks
cyclades: Make NIC representation more verbose
cyclades: Do not delete networks with floating IPs
Forbid network deletion in case the network has allocated floating IPs,no matter whether they are used by instances or not. Update'allocate_floating_ip' API method, to take exclusive lock on networkbefore reserving a floating IP, to avoid race condition between deleting...
cyclades: Auto allocate a floating IP
Make 'pool' attribute of POST /os-floating-ips request optional. Ifattribute is missing, the server will allocate a floating IP from one ofthe available public networks.
cyclades: Add 'floating-ip-list' management cmd
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: Add tests for add/remove Floating IP
cyclades: Reserve a specific floating IP
Add extra optional 'address' attribute, in POST /os-floating-ips/request, to allow a user to reserve a specific floating IP. This requestwill fail if the user tries to allocate an IP address that is used byanothers user VM (it will succeed if they address is already used by...
cyclades: Do not release floating IPs
Update 'release_instance_nics' backend function which is called toprocess NIC modifications in the Ganeti backend, to not return aIPv4 address back to pool if this address is a floating IP.
cyclades: Update reconcilliation for floating IPs
Update network reconcilliation to consider floating IPs reconcilling IPpools. Floating IPs that are reserved and usused, will appear asasynced. This commit fixes this, by considering unused floating IPs as...
cyclades: Check if network exists in backend
Raise 503 if a user tries to add a floating IP to a VM that resides in aGaneti backend that the coressponding network does not exist.
cyclades: Add and remove networks from backends
Extend 'snf-manage network-modify' command with '--add-to-backend' and'--remove-from-backend' options, to create and remove an already createdpublic network from a Ganeti backend.
cyclades: Support many NICs when creating vms
Support arbitraty number of NICs when creating Ganeti instances.
cyclades: Add FloatingIP model
Add Floating IP model to represent a floating IP that has been reservedby a user. Each FloatingIP has an owner(UUID), an IPv4 address, thenetwork(pool) that has reserved from and the date is was reserved. Also,it may be related to a VirtualMachine, if there is some VM that uses...
cyclades: Make Floating IPs a quotable resource
Add 'cyclades.floating_ip' to quotable resources. Update helperfunctions and tests to include this resource.
cyclades: Implement /os-floating-ips API
Extend Cyclades API with /os-floating-ips endpoint. The API implementsthe following calls:
cyclades: Add tests for floating-ips API
cyclades: Implement /floating-ip-pools API
Add Compute OS API extension /floating-ip-pools. This API implementsonly the GET /floating-ip-pools, which returns the list of availableFloating IP pools. Currently, these pools are the public networks.
cyclades: Extend /servers with floating IP actions
Extend '/servers/action' API endpoint, to support 'addFloatingIP'and 'removeFloatingIP' actions.
cyclades: refactor reconciliation
Refactor reconciliation code to use namedtuples and improve performancefor retrieving info from database.
cyclades: reconciliation for resizing VMs
cyclades: Mark serial as resolved if auto_accept
Modify 'issue_commission' function to mark the QuotaHolderSerial objectas resolved, if auto_accept option is used.
cyclades: Remove custom init method from VM model
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: Handle 'EmptyPool' in util method
Refactor cyclades code to handle 'EmptyPool' exception in'get_network_free_address' function.
cyclades: Add backend function for resizing vm
Add 'resize_instance' backend function for resizing a vm. This commandissues an OP_INSTANCE_MODIFY job with the specified beparams, whichcurrently are vcpus, minmem and maxmem.
Refs #3870
cyclades: Implement resize action API call
Implement resize API call, which is a POST at/servers/<server_id>/action' with body: {"resize": {"flavorRef": <flavor_id>}}
The resize can only be performed if the disk size and disk template ofthe new flavor are the same with the old one, and if the VM is in...
cyclades: Handle Ganeti msgs for resized VMs
Handle 'OP_INSTANCE_SET_PARAMS' notifications from Ganeti that have'beparams' attribute, which corresponds to resized VMs. In suchcase, the corresponding flavor is found an the VM in DB is updated tohave this flavor....
cyclades: Make flavor representation more verbose
cyclades: Fix assertion on mocked client