- 02 Jul, 2013 36 commits
-
-
Christos Stavrakakis authored
Extend POST /servers API call, to take an optional attribute 'floating_ips', which is a list of floating IP addresses. The server will have one NIC for each of this addresses after the 'DEFAULT_INSTANCE_NETWORKS' and before any private networks that the user has chosen. All of the addresses must first be reserved through the /os-floating-ips API.
-
Christos Stavrakakis authored
Add 'DEFAULT_INSTANCE_NETWORKS' setting that can be used by the administrator to define the list of networks that each server that is created must be connected to. Each created VM will have a NIC connected to each of these networks. This settings can include a list of network UUIDs or the special "public" ID, which corresponds to any public network that has a free IP address. Also, extend POST /servers API call, with an optional 'networks' attribute, that the user can use to define a list of private networks that wants it's VM to be connected.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Make 'pool' attribute of POST /os-floating-ips request optional. If attribute is missing, the server will allocate a floating IP from one of the available public networks.
-
Christos Stavrakakis authored
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 network before reserving a floating IP, to avoid race condition between deleting a network and reserving an IP address.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Support arbitraty number of NICs when creating Ganeti instances.
-
Christos Stavrakakis authored
Extend 'snf-manage network-modify' command with '--add-to-backend' and '--remove-from-backend' options, to create and remove an already created public network from a Ganeti backend.
-
Christos Stavrakakis authored
Raise 503 if a user tries to add a floating IP to a VM that resides in a Ganeti backend that the coressponding network does not exist.
-
Christos Stavrakakis authored
Update network reconcilliation to consider floating IPs reconcilling IP pools. Floating IPs that are reserved and usused, will appear as asynced. This commit fixes this, by considering unused floating IPs as free in the IP pool.
-
Christos Stavrakakis authored
Update 'release_instance_nics' backend function which is called to process NIC modifications in the Ganeti backend, to not return a IPv4 address back to pool if this address is a floating IP.
-
Christos Stavrakakis authored
Add extra optional 'address' attribute, in POST /os-floating-ips/ request, to allow a user to reserve a specific floating IP. This request will fail if the user tries to allocate an IP address that is used by anothers user VM (it will succeed if they address is already used by the same user).
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Extend '/servers/action' API endpoint, to support 'addFloatingIP' and 'removeFloatingIP' actions.
-
Christos Stavrakakis authored
Add Compute OS API extension /floating-ip-pools. This API implements only the GET /floating-ip-pools, which returns the list of available Floating IP pools. Currently, these pools are the public networks.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Extend Cyclades API with /os-floating-ips endpoint. The API implements the following calls: * GET /os-floating-ips: List reserved floating IPs * POST /os-floating-ips: Allocate a floating IP * GET /os-floating-ips/ip_id: Show information about a floating IP * DELETE /os-floating-ips/ip_id: Release a floating IP
-
Christos Stavrakakis authored
Add 'cyclades.floating_ip' to quotable resources. Update helper functions and tests to include this resource.
-
Christos Stavrakakis authored
Add Floating IP model to represent a floating IP that has been reserved by a user. Each FloatingIP has an owner(UUID), an IPv4 address, the network(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 this IP. Also, create the corresponding model factory for tests.
-
Christos Stavrakakis authored
Refactor cyclades code to handle 'EmptyPool' exception in 'get_network_free_address' function.
-
Christos Stavrakakis authored
Major refactor to cyclades api and logic apps that removes most code from the api views and moves it to logic app, so that the same logic code can be used by different apps (e.g. EC2 API). Code is moved into logic.servers. This commit also introduces the VirtualMachine.task attribute which contains the last issued action to a server. This attribute is set when the corresponding job is sent to Ganeti, and is cleared upon completion of the corresponding job (task_job_id attribute). Until the task is completed, no other action is allowed on the VM. The only exception is 'DESTROY' action which is always allowed. Actions on VMs with uncompleted tasks results in a bad request fault. Also, some actions are not allowed if the operating state of the VM is not correct. For example, it is not allowed to start or resize a running VM. The running task is also exposed to the API (SNF:task_state), and the available states are: * BUILDING * STARTING * STOPPING * REBOOTING * DESTROYING * RESIZING * CONNECTING * DISCONNECTING Also, this commit introduces two quotable resources, the 'active_ram' and 'active_cpu' representing the ram and cpu of running instances, specifically the instances in 'STARTED', 'BUILD' and 'ERROR' operstate. In order to count quotas for these resources, commissioning is needed when starting, stopping and rebooting instances. Also, the destroy commissioning is different if the vm is running or is stopped. Finally this commit changes the way commissioning is used in snf-dispatcher. Until now dispatcher only accepted or rejected commissions issued by the API. This commit introduces extra logic in dispatcher, to issue commissions for every quotable change, if a commission for this change has not already been issued by the API. This enables the administrator to do whatever action in the Ganeti backend without resulting in unsynced quotas. If a new commission is required, the previous commission for the VM by the API (if existing) will be rejected, since this commission will reflect a different change in the VM.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Modify 'issue_commission' function to mark the QuotaHolderSerial object as resolved, if auto_accept option is used.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Refactor reconciliation code to use namedtuples and improve performance for retrieving info from database.
-
Christos Stavrakakis authored
Handle 'OP_INSTANCE_SET_PARAMS' notifications from Ganeti that have 'beparams' attribute, which corresponds to resized VMs. In such case, the corresponding flavor is found an the VM in DB is updated to have this flavor. Refs #3870
-
Christos Stavrakakis authored
Update 'snf-ganeti-eventd' daemon to send the requested beparams in case of 'OP_INSTANCE_SET_PARAMS' opcodes. Also, if the opcode is in success state, send the 'result' attribute of Ganeti jobs. Refs #3870
-
Christos Stavrakakis authored
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 of the new flavor are the same with the old one, and if the VM is in STOPPED status. Also add 'RESIZE' operstate to VirtualMachine Refs #3870
-
Christos Stavrakakis authored
Add 'resize_instance' backend function for resizing a vm. This command issues an OP_INSTANCE_MODIFY job with the specified beparams, which currently are vcpus, minmem and maxmem. Refs #3870
-
Christos Stavrakakis authored
Mock quotaholder in all of BaseAPITest calls.
-
Christos Stavrakakis authored
Include 202 in success responses.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
-
Sofia Papagiannaki authored
Refs: 4086
-
Olga Brani authored
A different image is shown in the login page when the main login method is 'local' and its form is already expanded.
-
- 01 Jul, 2013 3 commits
-
-
Kostas Papadimitriou authored
fix pithos:// redirect params extraction
-
Christos Stavrakakis authored
Refs #4086
-
Sofia Papagiannaki authored
Update api call to return a default region for compatibility with the keystone api.
-
- 28 Jun, 2013 1 commit
-
-
Christos Stavrakakis authored
-