1. 16 Jun, 2014 4 commits
  2. 23 May, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      Fix QueryNetworks wrt instances · 96092119
      Dimitris Aragiorgis authored
      QueryNetworks tries to find which instances are connected to which
      networks. The query mechanism in Haskell was written back when NICs
      referred to a network via its name and not its UUID. Fix luxi to
      comply with the current implementation (network slot of NIC object
      is a UUID).
      
      Fix old style query mechanism to return a list of names instead of
      UUIDs for the instances that are connected to a network.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      Reviewed-by: default avatarHelga Velroyen <helgav@google.com>
      96092119
  3. 18 Nov, 2013 2 commits
    • Dimitris Aragiorgis's avatar
      Allow instances to obtain externally reserved IPs · 031d2db1
      Dimitris Aragiorgis authored
      The administrator should be able to assign an externally reserved IP
      to a Ganeti instance manually, if desired. Currently this is not
      supported. External reservations should act as holes in the pool and
      not just as IPs already used by someone outside of Ganeti.
      Automatic allocation with ip=pool will continue to exclude those IPs
      as happens now.
      
      To allow such functionality the administrator needs to pass explicitly
      the desired IP along with the ``--no-conflicts-check`` option, or else
      an error will be produced as happens now.
      
      The aforementioned require the following changes:
      
       - Make IsReserved() to look either in reservations or external ones.
       - Make Reserve() and Release() to use IsReserved() with external
         argument True or False.
       - Pass extra option to ReserveIp() to bypass checking of external reservations
       - Update man pages and design doc for this change.
      
      Furthermore, a side effect of this patch is that it fixes the
      following problem:
      Currently, one could not mark an IP as external if it was already
      reserved (i.e. belonged to an instance). The code would produce a warning
      and fail silently.
      
      Fix config_mock.py so that if network and ip is given then reserve it in
      the pool.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarThomas Thrainer <thomasth@google.com>
      031d2db1
    • Dimitris Aragiorgis's avatar
      Mark cluster's IPs as externally reserved · 28d466dc
      Dimitris Aragiorgis authored
      Currently, upon network creation, nodes' and master's IPs
      are reserved in the pool.
      
      This leads to pool reservations ('X' in map) that cannot be changed
      afterwards, although they may need to (e.g. in case of node
      removal/modification). Also, these IPs are not actually handled by
      Ganeti in the sense that they are not assigned to the cluster's VMs.
      
      Thus, we should mark the as externally reserved and not just reserved.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarThomas Thrainer <thomasth@google.com>
      28d466dc
  4. 25 Sep, 2013 1 commit
  5. 16 Jul, 2013 1 commit
  6. 09 Jul, 2013 1 commit
  7. 20 Jun, 2013 1 commit
    • Thomas Thrainer's avatar
      Index instances by their UUID · da4a52a3
      Thomas Thrainer authored
      No longer index instances by their name but by their UUID in the cluster
      config. This change changes large parts of the code, as the following
      adjustments were necessary:
       * Change the index key to UUID in the configuration and the
         ConfigWriter, including all methods.
       * External interfaces (command line interface, IAllocator interface,
         hook scripts, etc.) are kept stable.
       * Instance UUID's are resolved in ExpandNames and then stored in the
         OpCode. This allows to check for instance renames if the OpCode is
         reloaded after a cluster restart. This check is currently only done
         for single instance parameters.
       * Instance locking unfortunately can't use instances UUID as
         identifiers. The reasons is that new instances (which have no UUID
         yet) have to be locked as well, so the instance name is used.
       * Variable names are renamed to follow the following pattern:
         - Suffix is 'inst' or 'insts': Variable holds Instance objects
         - Suffix is 'name' or 'names': Variable holds Instance names
         - Suffix is 'uuid' or 'uuids': Variable holds Instance UUID's
       * Tests are adapted.
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      da4a52a3
  8. 13 Jun, 2013 1 commit
    • Thomas Thrainer's avatar
      Index nodes by their UUID · 1c3231aa
      Thomas Thrainer authored
      No longer index nodes by their name but by their UUID in the cluster
      config. This change changes large parts of the code, as the following
      adjustments were necessary:
       * Change the index key to UUID in the configuration and the
         ConfigWriter, including all methods.
       * Change all cross-references to nodes to use UUID's.
       * External interfaces (command line interface, IAllocator interface,
         hook scripts, etc.) are kept stable.
       * RPC-calls can resolve UUID's as target node arguments, if the RPC
         runner is based on a ConfigWriter instance. The result dictionary is
         presented in the form the nodes are addressed: by UUID if UUID's were
         given, or by name if names were given.
       * Node UUID's are resolved in ExpandNames and then stored in the
         OpCode. This allows to check for node renames if the OpCode is
         reloaded after a cluster restart. This check is currently only done
         for single node parameters.
       * Variable names are renamed to follow the following pattern:
         - Suffix is 'node' or 'nodes': Variable holds Node objects
         - Suffix is 'name' or 'names': Variable holds node names
         - Suffix is 'uuid' or 'uuids': Variable holds node UUID's
       * Tests are adapted.
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      1c3231aa
  9. 17 May, 2013 2 commits