1. 08 Jul, 2008 1 commit
    • Guido Trotter's avatar
      ConfigWriter: remove _ReleaseLock · 5b4cd1b0
      Guido Trotter authored
      Remove empty function _ReleaseLock and all its calls. Since we only
      have one configwriter per cluster the locking needs to cover all the
      data in the object, and not just the file contents. Locking in
      ConfigWriter will be handled using the ganeti locking library.
      
      Reviewed-by: iustinp
      5b4cd1b0
  2. 07 May, 2008 1 commit
  3. 05 May, 2008 2 commits
    • Guido Trotter's avatar
      Wrap exception in _DistributeConfig code · 9ff994da
      Guido Trotter authored
      nodelist.remove(X) could potentially raise a ValueError (even if the chance
      that the current node is not in the list are pretty scarce, and its absence
      should raise a red flag anyway). If this happens let things go on, as that's
      what the code which previously distributed the config did.
      
      Reviewed-by: iustinp
      9ff994da
    • Guido Trotter's avatar
      Simplify target generation in DistributeConfig · 41362e70
      Guido Trotter authored
      Currently we get the list of nodes, and for each one extract all its info, and
      just to exclude it if the name matches ours. Since the list of nodes is a list
      of names just use .remove() to exclude ourself from it, and use that list
      directly.
      
      Reviewed-by: iustinp
      41362e70
  4. 21 Apr, 2008 3 commits
    • Iustin Pop's avatar
      Only change instance status if not already so · 455a3445
      Iustin Pop authored
      This patch makes the _SetInstanceStatus only change the status of the
      instance (in the config file) if it's not already in the desired state.
      This skips the increase of the config serial no without actual data
      changes.
      
      Reviewed-by: ultrotter
      455a3445
    • Iustin Pop's avatar
      Reuse common code between MarkInstance{Up,Down} · 6a408fb2
      Iustin Pop authored
      This patch creates a new method ConfigWriter._SetInstanceStatus that
      consists of the common code between MarkInstanceUp and MarkInstanceDown.
      These two methods become wrappers over the _SetInstanceStatus.
      
      Reviewed-by: ultrotter
      6a408fb2
    • Iustin Pop's avatar
      Abstract the json functions into a separate module · 8d14b30d
      Iustin Pop authored
      This simple patch adds a new module that holds the simplejson functions
      for serialization/deserialization. This reduces the amount of redundant
      code.
      
      The patch also adds some normalizations to the json output:
        - the output text will always have an EOL as last char
        - extra spaces before EOL are removed
      
      Reviewed-by: ultrotter
      8d14b30d
  5. 08 Apr, 2008 1 commit
    • Manuel Franceschini's avatar
      Modify LURenameInstance to support file backend · b23c4333
      Manuel Franceschini authored
      This patch does two things:
      - Modify LURenameInstance.Exec to rename directory
        when a file-based instance is renamed
      - Modify config.RenameInstance() to replace the directory name in
        config.data for file devices
      
      Reviewed-by: iustinp
      b23c4333
  6. 04 Apr, 2008 1 commit
  7. 31 Mar, 2008 1 commit
  8. 27 Dec, 2007 1 commit
  9. 27 Nov, 2007 1 commit
  10. 05 Nov, 2007 1 commit
  11. 24 Oct, 2007 1 commit
    • Iustin Pop's avatar
      Initial implementation of drbd8 template type · a1f445d3
      Iustin Pop authored
      This is a partially working drbd8 template type. It does:
        - add/remove
        - startup/failover/shutdown
      
      Not working is replace disks, which needs custom code for this template.
      
      Reviewed-by: imsnah
      a1f445d3
  12. 19 Oct, 2007 1 commit
    • Iustin Pop's avatar
      Abstract more strings values into constants · fe96220b
      Iustin Pop authored
      Currently, the disk types are defined using constants in the code.
      Convert those into constants so that we can easily find them and check
      their usage.
      
      Note that we don't rename the values of the constants as they are used
      in the configuration file, and as such it's best to leave them as they
      are.
      
      Reviewed-by: imsnah
      fe96220b
  13. 11 Oct, 2007 2 commits
  14. 10 Oct, 2007 1 commit
    • Iustin Pop's avatar
      Remove the shebang from modules · 2f31098c
      Iustin Pop authored
      Since modules are not directly executables, remove the shebang from
      them. This helps with lintian warnings.
      
      Also make the autogenerated _autoconf.py contain two comment lines at
      the beginning, like the other modules.
      
      Reviewed-by: ultrotter
      2f31098c
  15. 09 Oct, 2007 1 commit
  16. 04 Oct, 2007 1 commit
    • Michael Hanselmann's avatar
      Change configuration storage format from Pickle to JSON. · 319856a9
      Michael Hanselmann authored
      - Add NEWS file with major changes between versions.
      - Bump RPC version number
      - No longer serialize in RPC, but just convert to dict
      
      Old Pickle based configuration files can be converted using the cfgupgrade
      utility.
      
      Reviewed-by: iustinp, ultrotter
      
      319856a9
  17. 21 Sep, 2007 1 commit
    • Iustin Pop's avatar
      Remove requirement that host names are FQDN · 89e1fc26
      Iustin Pop authored
      We currently require that hostnames are FQDN not short names
      (node1.example.com instead of node1). We can allow short names as long
      as:
        - we always resolve the names as returned by socket.gethostname()
        - we rely on having a working resolver
      
      These issues are not as big as may seem, as we only did gethostname() in
      a few places in order to check for the master; we already required
      working resolver all over the code for the other nodes names (and thus
      requiring the same for the current node name is normal).  The patch
      moves some resolver calls from within execution path to the checking
      path (which can abort without any problems). It is important that after
      this patch is applied, no name resolving is called from the execution
      path (LU.Exec() or other code that is called from within those methods)
      as in this case we get much better code flow.
      
      This patch also changes the functions for doing name lookups and
      encapsulates all functionality in a single class.
      
      The final change is that, by requiring working resolver at all times, we
      can change the 'return None' into an exception and thus we don't have to
      check manually each time; only some special cases will check
      (ganeti-daemon and ganeti-watcher which are not covered by the
      generalized exception handling in cli.py). The code is cleaner this way.
      
      Reviewed-by: imsnah
      89e1fc26
  18. 17 Sep, 2007 1 commit
    • Iustin Pop's avatar
      Add rename instance support to ConfigWriter · fc95f88f
      Iustin Pop authored
      This patch adds support for renaming instances to the ConfigWriter
      class. It's needed in here in order to guarantee that we don't lose the
      instance during the rename (the instance will be there, either with the
      old name or with the new name).
      
      Reviewed-by: imsnah
      fc95f88f
  19. 14 Aug, 2007 1 commit
    • Iustin Pop's avatar
      Style changes for pep-8 and python-3000 compliance. · 3ecf6786
      Iustin Pop authored
      This changes the raising of exceptions from:
        raise Exception, value
      to
        raise Exception(value)
      
      as the first form will be removed in python-3000 and the second form is
      preferred now.
      
      The changes also involve a few cases of changing from raising standard
      exceptions and use our own ones.
      
      The new version also fixes many pylint-generated warnings, especially in
      ganeti-noded where I changed many methods to @staticmethod.
      
      There is no functionality changed (barring any bugs).
      3ecf6786
  20. 03 Aug, 2007 4 commits
  21. 27 Jul, 2007 1 commit
    • Iustin Pop's avatar
      Move the cluster name from ConfigWriter to SimpleStore. · 5fcdc80d
      Iustin Pop authored
      Reason: if left ConfigWriter, nodes don't know to which cluster they belong.
      This will bite us later when we'll revisit node join operation.
      
      Cons: we lose the cluster name from the config file, which means a
      standalone "cluster.data" is a little bit harder to analyze. But I have
      a plan for this which will follow shortly.
      
      Implementing this will also allow us to cleanly fix "gnt-cluster
      getmaster".
      
      Reviewed-by: imsnah
      5fcdc80d
  22. 26 Jul, 2007 3 commits
  23. 25 Jul, 2007 1 commit
  24. 23 Jul, 2007 1 commit
    • Iustin Pop's avatar
      Big change/cleanup in relation to the master startup: · 880478f8
      Iustin Pop authored
        - move the master node name from the ConfigWriter to SimpleStore (all
          nodes need this, and it was the only thing pulled in from the
          ConfigWriter on nodes)
        - fix mcpu.py and the testing w.r.t. this change; for testing, rename
          the fake_config.py to mocks.py and add a FakeSStore object
        - then add a ganeti-master script which can be run on any node at boot
          and which will not do anything if not master on start (on stop it
          will still try to remove the ip address)
        - also add a new cluster-wide variable (master_netdev) that determines
          on which interface we add this ip address; it's customizable at
          cluster init time
        - also remove the cluster name file which was separately handled from
          ssconf (not needed anymore)
        - remove the master init.d links from the list of config files as this
          is not our responsibility now
      
      880478f8
  25. 16 Jul, 2007 1 commit