1. 16 Jun, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      Fix LUNetworkConnect wrt vlan · 148c7ee0
      Dimitris Aragiorgis authored
      
      
      A network is currently connected to a nodegroup with a mode and a
      link. Those netparams are inherited as nicparams when a NIC is
      attached to a network and filled with the cluster wide defaults.
      
      Since vlan was added to NIC parameters, netparams should be updated
      to include it too otherwise NICs attached to a network can be found
      with mode=bridged, link=some bridge and the cluster wide vlan.
      
      This patch fixes LUNetworkConnect to add an empty string vlan to
      netparams along with the user provided mode and link. Additionally
      it adds an empty vlan to existing netparams via
      objects.NodeGroup.UpgradeConfig().
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      Signed-off-by: default avatarKlaus Aehlig <aehlig@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      148c7ee0
  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...
      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