From fc3f75dd4d99be3d22726b4eed0b37a6ed7ed2c0 Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Wed, 29 Aug 2012 00:59:00 +0200
Subject: [PATCH] Fix decorator uses which crash newer pylint

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: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
---
 lib/watcher/__init__.py | 3 ++-
 qa/ganeti-qa.py         | 3 ++-
 tools/move-instance     | 5 +++--
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/watcher/__init__.py b/lib/watcher/__init__.py
index 7cc3ce35a..20b3a204b 100644
--- a/lib/watcher/__init__.py
+++ b/lib/watcher/__init__.py
@@ -51,6 +51,7 @@ from ganeti import ssconf
 from ganeti import ht
 
 import ganeti.rapi.client # pylint: disable=W0611
+from ganeti.rapi.client import UsesRapiClient
 
 from ganeti.watcher import nodemaint
 from ganeti.watcher import state
@@ -569,7 +570,7 @@ def _CheckMaster(cl):
     raise NotMasterError("This is not the master node")
 
 
-@rapi.client.UsesRapiClient
+@UsesRapiClient
 def _GlobalWatcher(opts):
   """Main function for global watcher.
 
diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index 94518128d..fe4fbbdd5 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -48,6 +48,7 @@ from ganeti import rapi
 from ganeti import constants
 
 import ganeti.rapi.client # pylint: disable=W0611
+from ganeti.rapi.client import UsesRapiClient
 
 
 def _FormatHeader(line, end=72):
@@ -544,7 +545,7 @@ def RunQa():
   RunTestIf("cluster-destroy", qa_cluster.TestClusterDestroy)
 
 
-@rapi.client.UsesRapiClient
+@UsesRapiClient
 def main():
   """Main program.
 
diff --git a/tools/move-instance b/tools/move-instance
index 168ad811f..716b00c4d 100755
--- a/tools/move-instance
+++ b/tools/move-instance
@@ -1,7 +1,7 @@
 #!/usr/bin/python
 #
 
-# Copyright (C) 2010 Google Inc.
+# Copyright (C) 2010, 2011, 2012 Google Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -42,6 +42,7 @@ from ganeti import rapi
 
 import ganeti.rapi.client # pylint: disable=W0611
 import ganeti.rapi.client_utils
+from ganeti.rapi.client import UsesRapiClient
 
 
 SRC_RAPI_PORT_OPT = \
@@ -836,7 +837,7 @@ def CheckOptions(parser, options, args):
   return (src_cluster_name, dest_cluster_name, instance_names)
 
 
-@rapi.client.UsesRapiClient
+@UsesRapiClient
 def main():
   """Main routine.
 
-- 
GitLab