1. 04 Nov, 2014 1 commit
  2. 01 Sep, 2014 1 commit
  3. 23 Aug, 2014 1 commit
  4. 18 Jul, 2014 1 commit
  5. 14 Jul, 2014 1 commit
  6. 09 Jul, 2014 2 commits
    • Stratos Psomadakis's avatar
      cyclades: Fixes for the new console actions · bd56cbcc
      Stratos Psomadakis authored
      Fix wrong import and avoid importing the target view by using a string
      argument to the 'reverse' function, containing the Python path to the
      view object.
    • Stratos Psomadakis's avatar
      api: Add support for more types of (VM) console · 103f0eb5
      Stratos Psomadakis authored
      Modify the current 'console' action to support VNC WebSockets (requires
      snf-vncauthproxy=1.6). Also add support for the three OpenStack Compute
      console actions (VNC, RDP, Spice), supported by Nova. RDP (Hyper-V
      specific) and Spice currently return a '500 Not Implemented' cloud
  7. 08 Jul, 2014 1 commit
  8. 26 Jun, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Add option to disable snapshots API · 45c605f8
      Christos Stavrakakis authored
      Add 'CYCLADES_SNAPSHOTS_ENABLED' setting to denote whether Cyclades
      will expose the '/snapshots' API URL of the 'volume' app.
      In case this setting is set to False:
      * we disable the '/snapshots' API URL
      * return 501 if the 'source_snapshot_id' attribute is used in a request
        for a new volume
      * Remove 'snapshot' from the supported sources of a new volume in the
        create server request
      Note: Creation and handling of snapshots can still be performed via
      'snf-manage' commands. The setting affects only the exposed API.
  9. 29 May, 2014 1 commit
  10. 14 Apr, 2014 1 commit
    • Vangelis Koukis's avatar
      Switch license to GPLv3 · 02071b96
      Vangelis Koukis authored
      According to the decision of the GRNET Board of Directors,
      switch license to GPLv3.
      This commit will be propagated to the release
      and master branches based on git flow, and the next
      release will be licensed as GPLv3.
  11. 31 Mar, 2014 4 commits
    • Christos Stavrakakis's avatar
      snf_django: Handle unicode errors in JSON bodies · 8b489e97
      Christos Stavrakakis authored
      Catch unicode errors when doing JSON de-serialization of the body of a request.
      Also, rename 'get_request_dict' function to 'get_json_body', as it is a
      more representative name for what the function is doing.
    • Christos Stavrakakis's avatar
      cyclades: Create servers with volumes · fc96f8c6
      Christos Stavrakakis authored
      Extend Cyclades POST /servers API endpoint to support specifying volumes
      when creating a server. The call is extended with the
      'block_device_mapping_v2' field that contains a list of dictionaries,
      each of which contains the following information about the devices that
      the server must have:
      * source_type: One of'image', 'snapshot', 'volume' or 'blank'
      * uuid: The UUID of the object that is specified by source_type (if
              source_type is not blank)
      * size: The size of the volume
      * delete_on_termination: Whether the volume will be preserved or
                               automaticaly deleted when the server is deleted
      If no volume is specified, then a volume is automatically created with
      the size of the flavor and with source the image that is specified in
      the 'imageRef' field of the API call.
      The follow restrictions apply:
      * Source_type can be other than 'blank', only if the disk template is
        ext_ or if the volume is created as a root volume of a server, so
        it will be filled with data by snf-image.
      * The root volume cannot be blank.
      * In order to use a volume, it must be in AVAILABLE status. This will
        never happen until detachable volumes are implemented. However, the
        user can "clone" a user volume either by creating a new volume from
        cinder and then using this new volume, or by taking a snapshot and then
        use the snapshot as a source.
      * The size field is required if the source is image, snapshot or blank.
        Also, the size of the volume must be equal or bigger from the source
        size (if any).
      Finally, move some code from 'servers' module to 'server_attachments'
      and 'commands' to avoid cyclic imports.
    • Christos Stavrakakis's avatar
      cyclades: Implement API for volume attachments · 58235481
      Christos Stavrakakis authored
      Extend /servers API with 'os-volume_attachments' endpoint, containing
      API calls for attaching and detaching volumes to servers, and
      listing/showing the volumes of a server.
    • Christos Stavrakakis's avatar
  12. 28 Feb, 2014 1 commit
  13. 24 Feb, 2014 3 commits
  14. 13 Feb, 2014 3 commits
  15. 12 Feb, 2014 1 commit
  16. 24 Jan, 2014 1 commit
  17. 22 Jan, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Extend flavors with 'allow_create' field · f55499e0
      Christos Stavrakakis authored
      * Add 'allow_create' field to Flavor DB model and the corresponding
      * Extend API for flavors to return the 'SNF:allow_create' attribute
      * Update POST /servers API call to check that the flavor that is
        specified in the request has the 'allow_create' attribute set to True.
        Otherwise, Forbidden(403) is returned. Also, add a relevant unittest.
      * Extend 'flavor-modify' and 'flavor-list' management commands to handle
        the 'allow_create' flag
      * Update administrator guide and Changelog
  18. 20 Jan, 2014 1 commit
  19. 19 Dec, 2013 1 commit
  20. 09 Dec, 2013 1 commit
  21. 03 Dec, 2013 1 commit
  22. 02 Dec, 2013 1 commit
  23. 27 Nov, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Change behaviour of servers fqdn · ddaf8b1d
      Christos Stavrakakis authored
      Change behaviour of 'CYCLADES_SERVERS_FQDN' setting:
        * If this setting is set to 'None', do not fall back to the public IP
          address of the machine.
        * Return the value of the setting even if the machine has no public
          IP address.
  24. 22 Nov, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Add name to Ganeti NICs · 1d546431
      Christos Stavrakakis authored
      Add 'name' attribute to newly created NICs. Currently, the name of the
      NICs 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, this
      commit updates snf-dispatcher to preserve the name of the NIC, if any,
      when updating instance NICs.
      Finally, the commit updates handling of firewall tags by adding a second
      tag that contains the name of the NIC. The tags with the name of the
      NICs will be kept in Synnefo 0.15, and the old tags with the index of
      the NIC will be removed.
  25. 13 Nov, 2013 1 commit
  26. 05 Nov, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Fix default/forced server networking · 056eee6c
      Christos Stavrakakis authored
      Fix the default behaviour for networking of servers that are being
      created. There are two settings controlling this behaviour:
      * CYCLADES_DEFAULT_SERVER_NETWORKS: This setting contains list of
        networks to connect a newly created server to, if the user has not
        specified them explicitly in the POST /server API call. Each member of
        the list may be a network UUID, a tuple of network UUIDs,
        "SNF:ANY_PUBLIC_IPV4" [any public network with an IPv4 subnet
        defined], "SNF:ANY_PUBLIC_IPV6 [any public network with only an IPV6 subnet
        defined],  or "SNF:ANY_PUBLIC" [any public network].
        Access control and quota policy are enforced, just as if the user had
        specified the value of CYCLADES_DEFAULT_SERVER_NETWORKS in the content
        of the POST /call, after processing of "SNF:*" directives.
        Default value: ["SNF:ANY_PUBLIC"]
      * CYCLADES_FORCED_SERVER_NETWORKS: This setting contains a list of
        networks which every new server will be forced to connect to,
        regardless of the contents of the POST /servers call, or the value of
        CYCLADES_DEFAULT_SERVER_NETWORKS.  Its format is identical to that of
       No access control or quota policy are enforced.  The server will get
       all IPv4/IPv6 addresses needed to connect to the networks specified in
       CYCLADES_FORCED_SERVER_NETWORKS, regardless of the state of the
       floating IP pool of the user, and without allocating any floating IPs.
       Default value: ["SNF:ANY_PUBLIC_IPV6"]
      Also this commit changes how API handles requests that specify a public
      network without specifying a floating IP address: If the request does
      not contain the 'fixed_ip' attribute, the server will try to
      automatically use one of the free floating IP addresses of the user
      that are allocated from the specified network.
  27. 04 Nov, 2013 2 commits
    • Christos Stavrakakis's avatar
      cyclades: Workaround for race condition in Ganeti · 84fcfa69
      Christos Stavrakakis authored
      Workaround for race where OP_INSTANCE_REMOVE starts executing on Ganeti
      before OP_INSTANCE_CREATE. If this is the case, OP_INSTANCE_REMOVE will
      not wait for locks, instead it will fail because the instance has not
      yet be created. Dispatcher will received the failed OP_INSTANCE_REMOVE
      job and will query Ganeti to see if the instance exists. However, if the
      OP_INSTANCE_CREATE has not yet started, the query will return 404, and
      dispatcher will delete the instance from DB and release its IP
      addresses. Following instance creations will fail because the IPv4
      address will be already used in Ganeti.
      This commit is a workaround for this issue until OP_INSTANCE_REMOVE
      supports the 'depends' attribute. Until then, the API will raise 409 if
      the job has not yet completed and the intance has not been added to
    • Christos Stavrakakis's avatar
      cyclades: Create server in public net with FIP · 227ccc21
      Christos Stavrakakis authored
      Remove 'floating_ips' extension attribute to POST /servers API call.
      Instead use the 'fixed_ip' attribute of 'networks' attribute to specify
      the IPv4 address of a floating IP. So in order to create a server
      connected to a private network and a public network, the 'networks'
      attribute will be:
      [{"uuid": "<private-network-uuid>"},
       {"uuid": "<floating-ip-network-uuid>",
        "fixed_ip": "<floating-ip-address>"}]
  28. 02 Nov, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Create server with existing ports · 8c29b065
      Christos Stavrakakis authored
      Extend POST /servers API call to support creation of servers that will
      be using existing ports. Networking of the instance is defined via the
      'networks' attribute which can contain either network UUIDs or port
      UUIDs. In case of network UUIDs, the user can also request for a
      specific IPv4 address. For example:
      {"network":  [{"uuid": 41, "fixed_ip": ""}, {"port": 42}]}
      This patch also changes the 'floating_ips' attribute to contain not
      IPv4 addresses of floating IPs, but the UUIDs of the floating IPs that
      the user want to connect to the instance.
  29. 01 Nov, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Create ports without 'device_id' · 4b649f24
      Christos Stavrakakis authored
      Allow creation of ports that are not connected to any instance. Such
      ports will be in 'DOWN' state. To allow this, 'machine' attribute of
      NetworkInterface model has been made to allow null values. Finally, the
      'logic.ports' module has been remove, and the corresponding code has
      been merged into 'logic.servers' module.
  30. 11 Oct, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Optimize DB queries of /servers API · 9ae370e6
      Christos Stavrakakis authored
      Use 'prefetch_related' attribute of Django queryset to prefetch the
      NetworkInterface and IPaddress objects that are related with a
      VirtualMachine object. Also, modify functions that operate on server
      NICs and IPs, to to use only the prefetched objects, which means that
      they can perform further filtering or ordering on objects because this
      is considered a new DB query and so will not get the cached objects.
      Also, return empty 'fqdn' and 'port_forwarding' attributes if the
      server has no public IP address.
  31. 09 Oct, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Make API server tests pass · ea15eddf
      Christos Stavrakakis authored
      Refactor Cyclades code so that it follows the new models for Networks,
      Subnets and IPAddresses. This refactor is not complete. Instead is the
      necessary refactor for making tests for server API calls succeed.