1. 04 Sep, 2012 1 commit
  2. 03 Sep, 2012 5 commits
    • Iustin Pop's avatar
      Fix warnings/errors with newer pylint · 8ad0da1e
      Iustin Pop authored
      
      
      To help developing Ganeti on newer distributions, let's try to fix
      pylint warnings/errors. I'm using pylint from current Debian wheezy:
      pylint 0.25.1, astng 0.23.1, common 0.58.0, and we have 3 things that
      needs fixing.
      
      First, a really wide "except", with the silencing in the wrong
      place. I'm not sure why this doesn't have "except Exception", so let's
      add it. However, pylint still complains about "Catching too general
      exception", even though we do want to catch both system and our
      exception, so let's add a silence for W0703. It's true that we
      shouldn't catch KeyboardInterrupt and friends, but that should be
      cleaned up on the master branch.
      
      Second, pylint complains about "redefining name builtin tuple",
      because we do some pattern matching in the except blocks in
      netutils. This seems to be a false positive, but let's clean the code
      around this.
      
      And finally, type inference again goes bad, so let's silence E1103
      with its "boolean doesn't have 'get' method".
      
      After this, I can run "make lint", and by extension "make
      commit-check" on Debian Wheezy, yay! We might be able to bump our
      required pylint versions to something not ancient…
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      8ad0da1e
    • Iustin Pop's avatar
      Fix decorator uses which crash newer pylint · fc3f75dd
      Iustin Pop authored
      
      
      Pylint version:
      
        pylint 0.25.1,
        astng 0.23.1, common 0.58.0
      
      crashes when passing the fully-qualified decorator name with:
      
        File "/usr/lib/pymodules/python2.7/pylint/checkers/base.py", line 161, in visit_function
          if not redefined_by_decorator(node):
        File "/usr/lib/pymodules/python2.7/pylint/checkers/base.py", line 116, in redefined_by_decorator
          decorator.expr.name == node.name):
      AttributeError: 'Getattr' object has no attribute 'name'
      
      I found out that simply using a shortened name will 'fix' this issue,
      so let's do this to allow running newer pylint versions.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      fc3f75dd
    • Iustin Pop's avatar
      Move parameter title definitions to constants · a6c7e2a2
      Iustin Pop authored
      
      
      This fixes an old TODO for moving these; now they can be reused in the
      Haskell Query2 implementation.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarAgata Murawska <agatamurawska@google.com>
      a6c7e2a2
    • Iustin Pop's avatar
      Fix typo in node role description · a9310b2f
      Iustin Pop authored
      
      
      I'd rather not introduce this typo in the Haskell code too, and also
      not having them identical is not good.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarAgata Murawska <agatamurawska@google.com>
      a9310b2f
    • Iustin Pop's avatar
      Complete and enable the haskell QueryClusterInfo call · a2160e57
      Iustin Pop authored
      
      
      Since we have now access to all cluster parameters, we can "fill" the
      parameters, and can finally enable it in CLI/RAPI.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarAgata Murawska <agatamurawska@google.com>
      a2160e57
  3. 28 Aug, 2012 6 commits
  4. 23 Aug, 2012 2 commits
    • Iustin Pop's avatar
      Bump pep8 version to 1.2 · 5ae4945a
      Iustin Pop authored
      
      
      Debian Wheezy will ship with this version, and it has many improved checks compared to 0.6, so let's:
      
      - bump version in the docs
      - silence some new checks that are wrong due to our indent=2 instead of 4
      - fix lots of errors in the code where the indentation was wrong by 1
        or 2 spaces
      - fix a few cases of == True, False, None and replace with 'is'
      - re-indent some cases where the code is OK, but pep8 complains
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      5ae4945a
    • Iustin Pop's avatar
      Change node parameter oob_program to VTYPE_STRING · 1df4d430
      Iustin Pop authored
      
      
      Since this is an inheritable parameter, having it as a MABYE_STRING
      creates only problems (per our derivation rules). We change it to
      STRING, with the default "", meaning no program. Note that most of the
      code already accepts this as valid for "no program", and some comments
      even say that this is the expected value.
      
      We have some other parameters like this, I'll have to investigate
      whether they need to be changed too. But right now I need this for the
      hconfd changes (it's a prerequisite for them, I forgot to send it in
      that patch series).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      1df4d430
  5. 22 Aug, 2012 1 commit
    • Constantinos Venetsanopoulos's avatar
      Fix computation of disk sizes in _ComputeDiskSize · 6a3166cb
      Constantinos Venetsanopoulos authored
      
      
      Currently, hail fails with FailDisk when trying to add an instance
      of type: 'file', 'sharedfile' and 'rbd'.
      
      This is due to a "0" or None value in the corresponding dict inside
      _ComputeDiskSize, which results in a "O" or non Int value of the
      exported 'disk_space_total' parameter. This in turn makes hail fail,
      when trying to process the value:
      
       - with "Unable to read Int" if value is None (file)
       - with FailDisk if value is 0 (sharedfile, rbd)
      
      The latter happens because the 0 value doesn't match the instance's
      IPolicy, since it is lower than the minimum disk size.
      
      The second problem still exists when using adoption with 'plain'
      and 'blockdev' template and will be addressed in another commit.
      Signed-off-by: default avatarConstantinos Venetsanopoulos <cven@grnet.gr>
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      6a3166cb
  6. 15 Aug, 2012 1 commit
    • Iustin Pop's avatar
      Add verification of RPC results in _WipeDisks · f08e5132
      Iustin Pop authored
      
      
      Due to an oversight, the pause/resume sync RPC calls in _WipeDisks
      lack the verification of the overall RPC status, and directly iterate
      over the payload. The code actually doing the wipe does verify
      correctly the results. This can result in jobs failing with a hard to
      diagnose:
      
      OpExecError ['NoneType' object is not iterable]
      
      instead of proper "RPC failed" message.
      
      This patch adds a hard check on the pause call, but for the resume
      call it just logs a warning if the RPC failed; the rationale being
      that if we can't contact the node for pausing the sync, it's likely
      wiping will fail too, but after the wipe has been done, we can
      continue.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      f08e5132
  7. 10 Aug, 2012 1 commit
  8. 08 Aug, 2012 2 commits
  9. 07 Aug, 2012 3 commits
  10. 02 Aug, 2012 1 commit
    • Iustin Pop's avatar
      Fix uses of OpPrereqError without code info · 2cfbc784
      Iustin Pop authored
      
      
      A while back, we did cleanup the code and ensured (manually) that use
      of OpPrereqError includes an errors.ECODE_* field as second
      argument. Since we cannot automate the check for this, it turns out
      that more and more such usage has crept over the years, including in
      the master code (the use on the CLI side is not as important).
      
      Note that this also uncovered a few errors in ovf.py where the errors
      messages were wrongly constructed.
      
      Still looking for a way to automate this check…
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      2cfbc784
  11. 27 Jul, 2012 1 commit
  12. 26 Jul, 2012 2 commits
    • Iustin Pop's avatar
      Fix issue in LUClusterVerifyGroup with multi-group clusters · 350506c6
      Iustin Pop authored
      
      
      In case LUClusterVerifyGroup is run on a group which doesn't contain
      the master node, the following could happen:
      
      - master node is selected due to the explicit check
      - if the order of nodes in the 'absent_nodes' list is such that the
        master node is the first in it, then we'll select (again) the master
        node
      - passing duplicate nodes to RPC calls will break due to RPC
        internals; this should be fixed separately, but in the meantime we
        just refrain from passing such duplicates
      
      This patch should not change the semantics of the code, since it
      wasn't guaranteed even before that we find a vm_capable node.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarBernardo Dal Seno <bdalseno@google.com>
      350506c6
    • Iustin Pop's avatar
      Fix node group modification of node parameters · 4bf27dab
      Iustin Pop authored
      Commit 904b3bfe
      
       tried to fix the deletion of custom ndparams from
      group, but instead broke both modification and deletion: because we
      run ForceDictType on self.op.ndparams instead of the updated
      new_ndparams, we can neither delete nor set properly spindle_count
      (since it won't be coerced to int).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      4bf27dab
  13. 25 Jul, 2012 4 commits
  14. 24 Jul, 2012 2 commits
    • Iustin Pop's avatar
      Fix boot=on flag for CDROMs · 24be50e0
      Iustin Pop authored
      This generalises commit 4304964a
      
       to cdroms too, since they have
      somewhat the same logic. We just abstract the needs_boot_flag into a
      separate variable, and then reuse it in the cdrom section.
      
      Note that the logic of what 'if=' type to pass to KVM was very
      convoluted, and (I think) incorrect; I went and cleaned it to be more
      consistent.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      24be50e0
    • Iustin Pop's avatar
      KVM: only pass boot flag once · 2b846304
      Iustin Pop authored
      This addresses issue 230: passing two methods of booting to KVM can,
      depending on the KVM version, confuse it.
      
      Note that commit 4304964a
      
       introduced a partial fix for this (but only
      for disks, and keyed on KVM versions). However, it didn't fix cdrom
      booting, which still fails with the same error, so let's fix it more
      generically; we still leave the per-disk check since that is about
      -boot c versus -drive …,boot=on rather than two boot methods.
      
      Patch is based on the one submitted by Vladimir Mencl, many thanks!
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      2b846304
  15. 20 Jul, 2012 2 commits
  16. 19 Jul, 2012 5 commits
  17. 18 Jul, 2012 1 commit