History | View | Annotate | Download (36.8 kB)
Update Copyright for project-related changes
Update Copyright for files merged into develop in 2014 concerning the newprojects mechanism.
cyclades: Common function to get object by ID
Create common helper function, for command line tools, to get an objectfrom DB by it's ID, and raise the appropriate command error if theobject does not exist or the ID is invalid.
cyclades: Add 'public' attribute to ports
Extend ports (NetworkInterface model) with 'public' attribute, toindicate that the port is connected to a public network without gettingthe network from the DB. Add corresponding DB migration and update theDB models factory....
cyclades: Add list of subnet IDs to network model
Extend Network model with 'subnet_ids' attribute. This attribute is alist with the IDs of the subnet that belong to this network and isstored in DB as a comma seperated list of integers.
This information is already contained in the Subnet model. However, we...
cyclades: Add field project in models
Add field `project' and initialize it to `userid' for all VMs, networks andfloating IPs. This means that all resources are assigned to the owner's baseproject.
cyclades: Extend flavors with 'allow_create' field
cyclades: Add 'userid' and 'public' to subnets
Extend 'Subnet' model with 'userid' and 'public' attributes. This isrequired in order to avoid an expensive join when listing subnets. Thiscommit also includes a database migration for existing subnets.
cyclades: Add 'ipversion' to IPAddress model
cyclades: Add datetime fields to Subnet model
Add 'created' and 'updated' datetime fields in Subnet model.
cyclades: Fix bugs in port creation
cyclades: Add a function to check name legnth
cyclades: Fix duplicate constraint in DB
cyclades: Remove DEFAULT_ROUTING_TABLE setting
Do not have a default value from 'link' attribute of IP_LESS_ROUTEDnetworks. Instead if the admin does not specify a value innetwork-create command, uniquely name the networks by with theBACKEND_PREFIX_ID and network id, e.g. snf-link-42.
Merge branch 'master' into develop
Conflicts: ci/schemas/one_node_wheezy/wheezy.conf docs/admin-guide.rst snf-cyclades-app/synnefo/api/actions.py snf-cyclades-app/synnefo/api/servers.py snf-cyclades-app/synnefo/logic/backend.py snf-cyclades-app/synnefo/logic/callbacks.py...
cyclades: Enforce quota
Introduce command enforce-resources-cyclades, which checks for quotaviolations and applies actions to enforce the limits. By default, itoperates only on these resources: cpu, ram, floating_ip.
cyclades: Add name to Ganeti NICs
Add 'name' attribute to newly created NICs. Currently, the name of theNICs will not be used to refer to NICs, as it will be in Synnefo 0.15.Names are added only to ease the migration to version 0.15. Also, thiscommit updates snf-dispatcher to preserve the name of the NIC, if any,...
cyclades: More strict 'on_delete' for models
Use 'models.PROTECT' for 'on_delete' attribute for some ForeignKeyrelationship between networking models. This will create a more "strict" database and protect for unexpected data loss.
cyclades: Create IPv6 Addresses from dispatcher
When ports are created from the API they do not have an IPv6 address.The IPv6 address is only available after the MAC address of theNIC is known which is only available after the message from theGaneti backend has been received. However, dispatcher did not created...
Cyclades: Rename 'Can not' to 'Cannot' to all msgs
cyclades: Series of fixes regarding networks & ips
cyclades: Port userid can not be null
cyclades: Create ports without 'device_id'
Allow creation of ports that are not connected to any instance. Suchports will be in 'DOWN' state. To allow this, 'machine' attribute ofNetworkInterface model has been made to allow null values. Finally, the'logic.ports' module has been remove, and the corresponding code has...
cyclades: Add accounting for IP Addresses
Create IPAddressLog DB table to hold information about allocation of IPaddresses to virtual servers. The information that is currently savedcontains the IP address, the ID of the virtual server, the ID of thevirtual network along with the datetime that the address has been...
cyclades: Rename Port state from BUILDING to BUILD
Neutron API defines the 'BUILD' status. This commit renames BUILDING state of NIC to BUILD.
cyclades: Fix bugs in IP pools
Fix default value for 'external' argument of release_address method ofNetwork model. Also fix how is checked whether an IP pool contains anaddress.
cyclades: Fix reconciliation for network and pools
cyclades: Remove stale reference to 'router'
cyclades: Default name for ports and subnets
Revert "cyclades: Add /routers api"
This reverts commit 69dadbe4e3223dc4d8cbaa5b09dde755c15679ed. Temporaryremove the /routers API.
cyclades: snf-manage floating-ip-attach
snf-manage floating-ip-attach <address> --machine <server_id/router_id>
cyclades: Add /routers api
cyclades: Add message to exceptions
cyclades: Fix some network management commands
cyclades: Refactor backend code for new networks
cyclades: Add method to get ip stats to network
Extend Network model with a method to get the number of free and totalIPv4 addresses of the network. Also, add method to IPAddress model torelease its IPv4 address if any. Finally, update backend-list management...
cyclades: snf-manage port-list
cyclades: Optimize DB queries of /servers API
Use 'prefetch_related' attribute of Django queryset to prefetch theNetworkInterface and IPaddress objects that are related with aVirtualMachine object. Also, modify functions that operate on serverNICs and IPs, to to use only the prefetched objects, which means that...
cyclades: Make logic tests pass
Refactor Cyclades code so that it follows the new models for Networks,Subnets and IPAddresses. This refactor is not complete. Instead is thenecessary refactor for making tests for server API calls succeed.
cyclades: Make API server tests pass
cyclades: Make IPPool manager work for subnets
Temporary commit to make IPPool manager work. This will work only ifthere is only one allocation pool for each subnet.
cyclades: Change 'null' attribute of Subnet models
cyclades: Use a constant for name length of models
Use a constant for declaring the max length of the name of amodel
cyclades: Remove unused fields and model from DB
Remove unused 'ipv4' and 'ipv6' attributes from NetworkInterface modeland totally remove FloatingIP model. This information has been movedin commit 972a428 to IPAddress model.
cyclades: Major refactor on NIC model
Major refactor on db models concerning NetworkInterface models. A newtable, namely 'IPAddress' has been created to represent an IPAddress(IPv4 or IPv6). Each IPAddress is related with a network and the subnetfrom which it has been allocated. Also it contains 'floating_ip' attribute...
cyclades: Remove unused fields from Network model
Remove unused fields from Network: subnet, subnet6, gateway, gateway6,dhcp and pool. The following attributes have been moved to Subnet modelin commit 779c887. Also extend model with the 'external_router'...
cyclades: Add new Subnet model
Add Subnet model containing Layer-3 characteristics for networks. Also,extend IPPoolTable object to hold a reference to the Subnet that thepool belongs to.
Signed-off-by: Dionysis Grigoropoulos <dgrig@grnet.gr>
cyclades: Do not delete FIPs if VM is deleted
Remove on delete CASCADE for floating IPs if the VirtualMachine isdeleted.
cyclades: Clear FloatingIP when deleting NIC
Override 'delete' method of NetworkInterface model, to clear the'machine' flag of the corresponding NIC, if any.
cyclades: Add 'ip_type' attribute to NIC
Extend NetworkInterface model with the 'ip_type' attribute to showwhether the IP is a floating or fixed.
Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
cyclades: Use Ganeti NIC UUIDs
Since Ganeti 2.8, it is supported to refer to devices (NICs and Disks)not only by their index but also by their name or UUID. This commitupdates Synnefo to refer to devices by their name. Synnefo will set thename of the devices which will be a UUID. We do not use Ganeti's UUIDs...
cyclades: Make (network, ipv4) unique for each NIC
Add a unique constraint to NetworkInterface model. This constraintasserts that the same IPv4 address from the same network will no beassigned to more than one NICs.
cyclades: Refactor reconciliation of pools
Move reconciliation of IP pools from 'snf-manage reconcile-networks'to 'snf-manage reconcile-pools'. Also change the way reconciliationworks: Instead of reconciling the IP pools in DB with the IP pools inGaneti, the new reconciliation just checks that:...
cyclades: Fix str representation for pool objects
cyclades: Add 'on_delete' to all ForeignKeys
Add 'on_delete' argument to all ForeignKeys. The value of thisargument depends on the type of each relation.
cyclades: Remove custom ForUpdateManager
Remove custom manager that implemented select_for_update(), since thisis already implemented in Django 1.4.
cyclades: Remove custom ProtectedDeletedManager
Remove custom ProtectedDeletedManager. Instead use theForeignKey.on_delete attribute that has been introduced in Django 1.4.
cyclades: Extend Backend model with disk_templates
Extend 'Backend' models with 'disk_template' attribute, that containsthe list of disk templates that are available in each backend.
cyclades: Handle errors during vm creation
Commit #f2080d1 mocked an OP_INSTANCE_REMOVE when enqueuing anOP_INSTANCE_CREATE job to Ganeti failed. However, this may result inreleasing IPs that may get reserved in Ganeti, because we can neverreally know if the job has reached Ganeti or not (e.g. timeout). For...
Merge branch 'hotfix-0.14.6' into develop
Conflicts: Changelog docs/admin-guide.rst snf-cyclades-app/synnefo/api/management/commands/network-remove.py snf-cyclades-app/synnefo/api/servers.py snf-cyclades-app/synnefo/api/tests/servers.py snf-cyclades-app/synnefo/logic/backend.py...
cyclades: Make index field of NIC optional
Change 'index' field of NIC model to be optional, because the index ofbuilding NICs is unknown. Also, change all API responses to return onlythe active NICs.
cyclades: Fix bug in snf-dispatcher logic
This commit reverts commits #07602322 and #30514662 which introduced abug in dispatcher's logic. These commit fixed the issue that, in a casethe Cyclades DB is unsynced with Ganeti, a resource that does not exist...
cyclades: Import settings from django.conf
cyclades: More verbose models representation
Make unicode method of VirtualMachine, Network and FloatingIP models moreverbose.
cyclades: Remove wrong model attribute
cyclades: Fix exception message
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: pep8 fixes
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.
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: Separate logic for networks from API
Remove code handling networks from network API views to logic.networks
cyclades: Make NIC representation more verbose
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: Extend /servers with floating IP actions
Extend '/servers/action' API endpoint, to support 'addFloatingIP'and 'removeFloatingIP' actions.
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: 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: Make flavor representation more verbose
cyclades: Remove obsolete settings
Remove obsolete GANETI_DISK_TEMPLATES and DEFAULT_GANETI_DISK_TEMPLATEsettings.
cyclades: Add 'drained' flag to Network
Extend Network model with the 'drained' attribute, to indicate whether anetwork should be used in public IP allocation when creating servers.This option is only useful for public networks.
cyclades: Add --hypervisor option to backend cmds
Add '--hypervisor' option to 'backend-add' and 'backend-modify'management commands.
Refs #3772
cyclades: Sypport backends with Xen hypervisor
cyclades: Implement lazy networks
Implement "lazy networks", which are not created to all Ganeti backendsupon creation, but only when an instance that resides in a Ganeti isconnected to that network.
Update 'create_network' to create the Network object in DB without...
Refactor QuotaHolder serial model
Remove VM/Network DeletedError and BuildingError
Handle these errors explicitly in the code instead of the "api_method" decorator.
Move cloud faults to 'snf_django.lib.api.faults'
Gather all faults from all synnefo projects into common'snf_django.lib.api.faults'.
Fix NIC's default state
Use "ACTIVE" as NIC's default state, to avoid addding a data migration.
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....
Bypass commissioning for orphan networks
Cyclades public networks do not have an owner, and since can not usethe commissioning system. Also, make snf-dispatcher instead of failingfor networks without userid to just a log a warning. This does not apply for...
Fix bug in PoolTable
Catch correct exception
pep8 fixes
Add disk_template to Flavor name
Merge branch 'master' into devel-0.13
Conflicts: snf-cyclades-app/synnefo/db/models.py snf-cyclades-app/synnefo/logic/management/commands/backend-modify.py
Fix bug about networks and offline backends
Ignore offline backends when computing the state of the network, sinceno notification will be received from them. Also, create noBackendNetwork for an offline backend. This will be created byreconcilliation, when the backend gets online again.
Fix bugs in models methods
Do not allow creation of more than one pools
Do not allow creation of more than one Bridge or MacPrefix pool, sincewe can not handle them yet.
Introduce network flavors to replace network types
Add tags and mode to network db model. Replace existing type withflavor. Introduce 4 different flavors. Each flavor has mode, link,mac_prefix, tags. Supported flavors are CUSTOM, IP_LESS_ROUTED,MAC_FILTERED, PHYSICAL_VLAN and are hardcoded in db models....
Fix bugs from merging
Reorder code
Create QuotaHolderSerial table
Add QuotaHolderSerial column to VM and Network
Correlate the VirtualMachine and Network models with a QuotaHolderSerialentry, holding the serial number returned by the QuotaHolder for thelast allocation for these resources.