Re: Issue 1180 in ganeti: Ceph/RBD support is broken with Ceph 'Jewel' due to incorrect showmapped command
Comment #1 on issue 1180 by snn...@gmail.com: Ceph/RBD support is broken with Ceph 'Jewel' due to incorrect showmapped command https://code.google.com/p/ganeti/issues/detail?id=1180 I've the same issue with debain 8.5 using ganeti Version: 2.12.4-1+deb8u3 and ceph 10.x from ceph repository. resolved by using ceph Version: 9.2.1-1~bpo80+1 on the clients. Is this production ready? -- You received this message because this project is configured to send all issue notifications to this address. You may adjust your notification preferences at: https://code.google.com/hosting/settings
Re: [PATCH master] Reformat command arglists to make pep8 happy
LGTM, ty :) On Thu, Jul 7, 2016 at 2:01 PM, 'Brian Foley' via ganeti-devel < ganeti-devel@googlegroups.com> wrote: > For short commands just put them on one line. For longer commands split > into command/formatting args/filtering args like you might for > SELECT/FROM/WHERE or UPDATE/WITH statements in SQL. > > No functional change. > > Signed-off-by: Brian Foley> --- > qa/qa_maintd.py | 95 > + > 1 file changed, 35 insertions(+), 60 deletions(-) > > diff --git a/qa/qa_maintd.py b/qa/qa_maintd.py > index 7cf26e6..ad33fbd 100644 > --- a/qa/qa_maintd.py > +++ b/qa/qa_maintd.py > @@ -49,10 +49,9 @@ from qa_instance_utils import CreateInstanceDrbd8, \ > > > def _GetMaintTags(node): > - tags = stdout_of(["gnt-node", > -"list-tags", > -node.primary > - ]).split() > + tags = stdout_of([ > +"gnt-node", "list-tags", node.primary > + ]).split() >return [t for t in tags if t.startswith('maintd:repairready:')] > > > @@ -70,13 +69,11 @@ def _AssertRepairTagAddition(node): > > def _AssertNodeDrained(node): >def fn(): > -out = stdout_of(["gnt-node", > - "list", > - "--output=name", > - "--no-headers", > - "--filter", > - "drained" > -]) > +out = stdout_of([ > + "gnt-node", "list", > + "--output=name", "--no-headers", > + "--filter", "drained" > +]) > if node.primary not in out: >raise retry.RetryAgain() >retry.Retry(fn, 5.0, 500.0) > @@ -84,13 +81,11 @@ def _AssertNodeDrained(node): > > def _AssertInstanceRunning(inst): >def fn(): > -out = stdout_of(["gnt-instance", > - "list", > - "--output=status", > - "--no-headers", > - "--filter", > - "name == \"%s\"" % inst.name > -]) > +out = stdout_of([ > + "gnt-instance", "list", > + "--output=status", "--no-headers", > + "--filter", "name == \"%s\"" % inst.name > +]) > if "running" not in out: >raise retry.RetryAgain() >retry.Retry(fn, 5.0, 500.0) > @@ -98,13 +93,11 @@ def _AssertInstanceRunning(inst): > > def _AssertInstanceMove(inst, move_type): >def fn(): > -out = stdout_of(["gnt-job", > - "list", > - "--output=status", > - "--no-headers", > - "--filter", > - '"%s(%s)" in summary' % (move_type, inst.name) > -]) > +out = stdout_of([ > + "gnt-job", "list", > + "--output=status", "--no-headers", > + "--filter", '"%s(%s)" in summary' % (move_type, inst.name) > +]) > if 'success' not in out: >raise retry.RetryAgain() >retry.Retry(fn, 5.0, 500.0) > @@ -112,52 +105,34 @@ def _AssertInstanceMove(inst, move_type): > > def _AssertRepairCommand(): >def fn(): > -out = stdout_of(["gnt-job", > - "list", > - "--output=status", > - "--no-headers", > - "--filter", > - '"REPAIR_COMMAND" in summary' > -]) > +out = stdout_of([ > + "gnt-job", "list", > + "--output=status", "--no-headers", > + "--filter", '"REPAIR_COMMAND" in summary' > +]) > if 'success' not in out: >raise retry.RetryAgain() >retry.Retry(fn, 5.0, 500.0) > > > def _SetUp(diagnose_dc_filename): > - AssertCommand(["gnt-cluster", > - "modify", > - "--maintenance-interval=3" > -]) > - AssertCommand(["gnt-cluster", > - "modify", > - "--diagnose-data-collector-filename", > - diagnose_dc_filename > -]) > + AssertCommand(["gnt-cluster", "modify", "--maintenance-interval=3"]) > + AssertCommand([ > +"gnt-cluster", "modify", > +"--diagnose-data-collector-filename", diagnose_dc_filename > + ]) > > > def _TearDown(node, tag, added_filepaths, drain_node=True): > - AssertCommand(["gnt-cluster", > - "modify", > - "--diagnose-data-collector-filename", > - '""' > -]) > + AssertCommand([ > +"gnt-cluster", "modify", > +"--diagnose-data-collector-filename", '""' > + ]) >AssertCommand(["rm"] + added_filepaths, node=node) >if drain_node: > -AssertCommand(["gnt-node", > - "modify", > - "--drained=no", > - node.primary > - ]) > - AssertCommand(["gnt-node", > - "remove-tags", > - node.primary, > - tag > -]) > - AssertCommand(["gnt-cluster", > - "modify", > -
[PATCH master] Reformat command arglists to make pep8 happy
For short commands just put them on one line. For longer commands split into command/formatting args/filtering args like you might for SELECT/FROM/WHERE or UPDATE/WITH statements in SQL. No functional change. Signed-off-by: Brian Foley--- qa/qa_maintd.py | 95 + 1 file changed, 35 insertions(+), 60 deletions(-) diff --git a/qa/qa_maintd.py b/qa/qa_maintd.py index 7cf26e6..ad33fbd 100644 --- a/qa/qa_maintd.py +++ b/qa/qa_maintd.py @@ -49,10 +49,9 @@ from qa_instance_utils import CreateInstanceDrbd8, \ def _GetMaintTags(node): - tags = stdout_of(["gnt-node", -"list-tags", -node.primary - ]).split() + tags = stdout_of([ +"gnt-node", "list-tags", node.primary + ]).split() return [t for t in tags if t.startswith('maintd:repairready:')] @@ -70,13 +69,11 @@ def _AssertRepairTagAddition(node): def _AssertNodeDrained(node): def fn(): -out = stdout_of(["gnt-node", - "list", - "--output=name", - "--no-headers", - "--filter", - "drained" -]) +out = stdout_of([ + "gnt-node", "list", + "--output=name", "--no-headers", + "--filter", "drained" +]) if node.primary not in out: raise retry.RetryAgain() retry.Retry(fn, 5.0, 500.0) @@ -84,13 +81,11 @@ def _AssertNodeDrained(node): def _AssertInstanceRunning(inst): def fn(): -out = stdout_of(["gnt-instance", - "list", - "--output=status", - "--no-headers", - "--filter", - "name == \"%s\"" % inst.name -]) +out = stdout_of([ + "gnt-instance", "list", + "--output=status", "--no-headers", + "--filter", "name == \"%s\"" % inst.name +]) if "running" not in out: raise retry.RetryAgain() retry.Retry(fn, 5.0, 500.0) @@ -98,13 +93,11 @@ def _AssertInstanceRunning(inst): def _AssertInstanceMove(inst, move_type): def fn(): -out = stdout_of(["gnt-job", - "list", - "--output=status", - "--no-headers", - "--filter", - '"%s(%s)" in summary' % (move_type, inst.name) -]) +out = stdout_of([ + "gnt-job", "list", + "--output=status", "--no-headers", + "--filter", '"%s(%s)" in summary' % (move_type, inst.name) +]) if 'success' not in out: raise retry.RetryAgain() retry.Retry(fn, 5.0, 500.0) @@ -112,52 +105,34 @@ def _AssertInstanceMove(inst, move_type): def _AssertRepairCommand(): def fn(): -out = stdout_of(["gnt-job", - "list", - "--output=status", - "--no-headers", - "--filter", - '"REPAIR_COMMAND" in summary' -]) +out = stdout_of([ + "gnt-job", "list", + "--output=status", "--no-headers", + "--filter", '"REPAIR_COMMAND" in summary' +]) if 'success' not in out: raise retry.RetryAgain() retry.Retry(fn, 5.0, 500.0) def _SetUp(diagnose_dc_filename): - AssertCommand(["gnt-cluster", - "modify", - "--maintenance-interval=3" -]) - AssertCommand(["gnt-cluster", - "modify", - "--diagnose-data-collector-filename", - diagnose_dc_filename -]) + AssertCommand(["gnt-cluster", "modify", "--maintenance-interval=3"]) + AssertCommand([ +"gnt-cluster", "modify", +"--diagnose-data-collector-filename", diagnose_dc_filename + ]) def _TearDown(node, tag, added_filepaths, drain_node=True): - AssertCommand(["gnt-cluster", - "modify", - "--diagnose-data-collector-filename", - '""' -]) + AssertCommand([ +"gnt-cluster", "modify", +"--diagnose-data-collector-filename", '""' + ]) AssertCommand(["rm"] + added_filepaths, node=node) if drain_node: -AssertCommand(["gnt-node", - "modify", - "--drained=no", - node.primary - ]) - AssertCommand(["gnt-node", - "remove-tags", - node.primary, - tag -]) - AssertCommand(["gnt-cluster", - "modify", - "--maintenance-interval=300" -]) +AssertCommand(["gnt-node", "modify", "--drained=no", node.primary]) + AssertCommand(["gnt-node", "remove-tags", node.primary, tag]) + AssertCommand(["gnt-cluster", "modify", "--maintenance-interval=300"]) def _TestEvac(filepath, filecontent, inst_move_type): -- 2.8.0.rc3.226.g39d4020
Re: [MERGE] stable-2.17 to master
LGTM, thanks. On Thursday, July 7, 2016 at 1:43:04 PM UTC+1, Brian Foley wrote: > > commit 3d17266c14d6e021253844b199b9518068875e4f > Merge: b7a0dde a824a2e > Author: Brian Foley> Date: Thu Jul 7 13:34:40 2016 +0100 > > Merge branch 'stable-2.17' > > * stable-2.17 > Improve missing job error handling in maintd > Prevent the watcher from submitting too many jobs > Fix hscan failing loading network field > Prevent watcher from holding lock on verify group > > * stable-2.16 > Fix some trivial pep8/pylint errors > Make executeRpcCall only compute rpcCallData once > Remove storage unit selection from rpcCallData > Only import needed functions from Ganeti.JSON > Special case WaitForJobChange to reduce heap use > > * stable-2.15 > Cleanup more pylint/pep8/apidoc errors > KVM: handle gracefully too old/too new psutil versions > Fix small typo in opcode tests > Fix line-too long errors > > Signed-off-by: Brian Foley > > diff --cc src/Ganeti/Types.hs > index c332ba0,8da06d4..66507cc > --- a/src/Ganeti/Types.hs > +++ b/src/Ganeti/Types.hs > @@@ -200,9 -200,9 +200,9 @@@ import Data.Ratio (numerator, denominat > import System.Time (ClockTime) > > import qualified Ganeti.ConstantUtils as ConstantUtils > - import Ganeti.JSON > + import Ganeti.JSON (Container, HasStringRepr(..)) > import qualified Ganeti.THH as THH > +import qualified Ganeti.THH.Field as THH (TagSet) > import Ganeti.Utils > > -- * Generic types > diff --cc test/py/mocks.py > index 66b9cf1,b48125b..5c78918 > --- a/test/py/mocks.py > +++ b/test/py/mocks.py > @@@ -203,7 -202,5 +206,8 @@@ class FakeLU(object) > return [] > > def HooksCallBack(self, phase, hook_results, feedback_fn, lu_result): > + # pylint: disable=W0613 > return lu_result > + > + def HooksAbortCallBack(self, phase, feedback_fn, exception): > +pass >
[MERGE] stable-2.17 to master
commit 3d17266c14d6e021253844b199b9518068875e4f Merge: b7a0dde a824a2e Author: Brian FoleyDate: Thu Jul 7 13:34:40 2016 +0100 Merge branch 'stable-2.17' * stable-2.17 Improve missing job error handling in maintd Prevent the watcher from submitting too many jobs Fix hscan failing loading network field Prevent watcher from holding lock on verify group * stable-2.16 Fix some trivial pep8/pylint errors Make executeRpcCall only compute rpcCallData once Remove storage unit selection from rpcCallData Only import needed functions from Ganeti.JSON Special case WaitForJobChange to reduce heap use * stable-2.15 Cleanup more pylint/pep8/apidoc errors KVM: handle gracefully too old/too new psutil versions Fix small typo in opcode tests Fix line-too long errors Signed-off-by: Brian Foley diff --cc src/Ganeti/Types.hs index c332ba0,8da06d4..66507cc --- a/src/Ganeti/Types.hs +++ b/src/Ganeti/Types.hs @@@ -200,9 -200,9 +200,9 @@@ import Data.Ratio (numerator, denominat import System.Time (ClockTime) import qualified Ganeti.ConstantUtils as ConstantUtils - import Ganeti.JSON + import Ganeti.JSON (Container, HasStringRepr(..)) import qualified Ganeti.THH as THH +import qualified Ganeti.THH.Field as THH (TagSet) import Ganeti.Utils -- * Generic types diff --cc test/py/mocks.py index 66b9cf1,b48125b..5c78918 --- a/test/py/mocks.py +++ b/test/py/mocks.py @@@ -203,7 -202,5 +206,8 @@@ class FakeLU(object) return [] def HooksCallBack(self, phase, hook_results, feedback_fn, lu_result): + # pylint: disable=W0613 return lu_result + + def HooksAbortCallBack(self, phase, feedback_fn, exception): +pass
Re: [MERGE] stable-2.16 to stable-2.17
LGTM, thanks! On Thu, Jul 7, 2016 at 12:32 PM, 'Brian Foley' via ganeti-devel < ganeti-devel@googlegroups.com> wrote: > commit 588fa31dd22a1e9320a9bf355c66ca1b837ff586 > Merge: fd55874 20c2aec > Author: Brian Foley> Date: Thu Jul 7 12:12:35 2016 +0100 > > Merge branch 'stable-2.16' into stable-2.17 > > * stable-2.16 > Fix some trivial pep8/pylint errors > Make executeRpcCall only compute rpcCallData once > Remove storage unit selection from rpcCallData > Only import needed functions from Ganeti.JSON > Special case WaitForJobChange to reduce heap use > > * stable-2.15 > Cleanup more pylint/pep8/apidoc errors > KVM: handle gracefully too old/too new psutil versions > Fix small typo in opcode tests > Fix line-too long errors > > Manually update import lists to fix compile errors, and fix trivial > pep8 whitespace warning. > > Signed-off-by: Brian Foley > > diff --cc src/Ganeti/Config.hs > index f67aff1,4d0e5a0..5687b54 > --- a/src/Ganeti/Config.hs > +++ b/src/Ganeti/Config.hs > @@@ -101,9 -99,8 +101,9 @@@ import System.I > > import Ganeti.BasicTypes > import qualified Ganeti.Constants as C > +import qualified Ganeti.ConstantUtils as CU > import Ganeti.Errors > - import Ganeti.JSON > + import Ganeti.JSON (fromJResult, fromContainer, GenericContainer(..)) > import Ganeti.Objects > import Ganeti.Types > import qualified Ganeti.Utils.MultiMap as MM > diff --cc src/Ganeti/HTools/Backend/IAlloc.hs > index e431947,3a67c2d..e40c3d7 > --- a/src/Ganeti/HTools/Backend/IAlloc.hs > +++ b/src/Ganeti/HTools/Backend/IAlloc.hs > @@@ -65,7 -65,7 +65,7 @@@ import Ganeti.HTools.AlgorithmParams (A > import Ganeti.HTools.CLI > import Ganeti.HTools.Loader > import Ganeti.HTools.Types > - import Ganeti.JSON > -import Ganeti.JSON (maybeFromObj, JSRecord, tryFromObj, toArray, > asObjectList, readEitherString, fromJResult, fromObj, fromObjWithDefault, > asJSObject) > ++import Ganeti.JSON (maybeFromObj, JSRecord, tryFromObj, toArray, > asObjectList, readEitherString, fromJResult, fromObj, fromObjWithDefault, > asJSObject, emptyContainer) > import Ganeti.Types ( EvacMode(ChangePrimary, ChangeSecondary) > , adminStateFromRaw, AdminState(..)) > import Ganeti.Utils > diff --cc src/Ganeti/HTools/Backend/Luxi.hs > index be81a3c,53b0794..639d74d > --- a/src/Ganeti/HTools/Backend/Luxi.hs > +++ b/src/Ganeti/HTools/Backend/Luxi.hs > @@@ -51,8 -51,7 +51,9 @@@ import Ganeti.HTools.Type > import qualified Ganeti.HTools.Group as Group > import qualified Ganeti.HTools.Node as Node > import qualified Ganeti.HTools.Instance as Instance > - import Ganeti.JSON > - import Ganeti.Objects as O > -import Ganeti.JSON (fromObj, fromJVal, tryFromObj, arrayMaybeFromJVal) > ++import Ganeti.JSON (fromJVal, tryFromObj, arrayMaybeFromJVal, > ++getKeysFromContainer, Container) > ++import Ganeti.Objects (PartialNicParams) > > {-# ANN module "HLint: ignore Eta reduce" #-} > > diff --cc src/Ganeti/HTools/Backend/Rapi.hs > index 03d158c,7d76751..218411c > --- a/src/Ganeti/HTools/Backend/Rapi.hs > +++ b/src/Ganeti/HTools/Backend/Rapi.hs > @@@ -53,7 -53,7 +53,7 @@@ import System.FilePat > import Ganeti.BasicTypes > import Ganeti.HTools.Loader > import Ganeti.HTools.Types > - import Ganeti.JSON > -import Ganeti.JSON (loadJSArray, JSRecord, tryFromObj, fromJVal, > maybeFromObj, fromJResult, tryArrayMaybeFromObj, readEitherString, > fromObjWithDefault, asJSObject) > ++import Ganeti.JSON (loadJSArray, JSRecord, tryFromObj, fromJVal, > maybeFromObj, fromJResult, tryArrayMaybeFromObj, readEitherString, > fromObjWithDefault, asJSObject, emptyContainer) > import qualified Ganeti.HTools.Group as Group > import qualified Ganeti.HTools.Node as Node > import qualified Ganeti.HTools.Instance as Instance > diff --cc src/Ganeti/Luxi.hs > index 4439cef,f763eee..831e859 > --- a/src/Ganeti/Luxi.hs > +++ b/src/Ganeti/Luxi.hs > @@@ -73,7 -71,7 +73,7 @@@ import Text.JSON.Type > import Ganeti.BasicTypes > import Ganeti.Constants > import Ganeti.Errors > - import Ganeti.JSON > -import Ganeti.JSON (fromJResult, fromJVal, Tuple5(..), MaybeForJSON(..), > TimeAsDoubleJSON(..)) > ++import Ganeti.JSON (fromJResult, fromJVal, fromObj, Tuple5(..), > MaybeForJSON(..), TimeAsDoubleJSON(..)) > import Ganeti.UDSServer > import Ganeti.Objects > import Ganeti.OpParams (pTagsObject) > diff --cc src/Ganeti/Objects.hs > index 4b92561,59abc5c..065aaa8 > --- a/src/Ganeti/Objects.hs > +++ b/src/Ganeti/Objects.hs > @@@ -130,13 -124,11 +130,13 @@@ import qualified Text.JSON as > import qualified AutoConf > import qualified Ganeti.Constants as C > import qualified Ganeti.ConstantUtils as ConstantUtils > - import Ganeti.JSON > + import Ganeti.JSON (DictObject(..), Container, emptyContainer, > GenericContainer) > import Ganeti.Objects.BitArray (BitArray) > import Ganeti.Objects.Disk >
[MERGE] stable-2.16 to stable-2.17
commit 588fa31dd22a1e9320a9bf355c66ca1b837ff586 Merge: fd55874 20c2aec Author: Brian FoleyDate: Thu Jul 7 12:12:35 2016 +0100 Merge branch 'stable-2.16' into stable-2.17 * stable-2.16 Fix some trivial pep8/pylint errors Make executeRpcCall only compute rpcCallData once Remove storage unit selection from rpcCallData Only import needed functions from Ganeti.JSON Special case WaitForJobChange to reduce heap use * stable-2.15 Cleanup more pylint/pep8/apidoc errors KVM: handle gracefully too old/too new psutil versions Fix small typo in opcode tests Fix line-too long errors Manually update import lists to fix compile errors, and fix trivial pep8 whitespace warning. Signed-off-by: Brian Foley diff --cc src/Ganeti/Config.hs index f67aff1,4d0e5a0..5687b54 --- a/src/Ganeti/Config.hs +++ b/src/Ganeti/Config.hs @@@ -101,9 -99,8 +101,9 @@@ import System.I import Ganeti.BasicTypes import qualified Ganeti.Constants as C +import qualified Ganeti.ConstantUtils as CU import Ganeti.Errors - import Ganeti.JSON + import Ganeti.JSON (fromJResult, fromContainer, GenericContainer(..)) import Ganeti.Objects import Ganeti.Types import qualified Ganeti.Utils.MultiMap as MM diff --cc src/Ganeti/HTools/Backend/IAlloc.hs index e431947,3a67c2d..e40c3d7 --- a/src/Ganeti/HTools/Backend/IAlloc.hs +++ b/src/Ganeti/HTools/Backend/IAlloc.hs @@@ -65,7 -65,7 +65,7 @@@ import Ganeti.HTools.AlgorithmParams (A import Ganeti.HTools.CLI import Ganeti.HTools.Loader import Ganeti.HTools.Types - import Ganeti.JSON -import Ganeti.JSON (maybeFromObj, JSRecord, tryFromObj, toArray, asObjectList, readEitherString, fromJResult, fromObj, fromObjWithDefault, asJSObject) ++import Ganeti.JSON (maybeFromObj, JSRecord, tryFromObj, toArray, asObjectList, readEitherString, fromJResult, fromObj, fromObjWithDefault, asJSObject, emptyContainer) import Ganeti.Types ( EvacMode(ChangePrimary, ChangeSecondary) , adminStateFromRaw, AdminState(..)) import Ganeti.Utils diff --cc src/Ganeti/HTools/Backend/Luxi.hs index be81a3c,53b0794..639d74d --- a/src/Ganeti/HTools/Backend/Luxi.hs +++ b/src/Ganeti/HTools/Backend/Luxi.hs @@@ -51,8 -51,7 +51,9 @@@ import Ganeti.HTools.Type import qualified Ganeti.HTools.Group as Group import qualified Ganeti.HTools.Node as Node import qualified Ganeti.HTools.Instance as Instance - import Ganeti.JSON - import Ganeti.Objects as O -import Ganeti.JSON (fromObj, fromJVal, tryFromObj, arrayMaybeFromJVal) ++import Ganeti.JSON (fromJVal, tryFromObj, arrayMaybeFromJVal, ++getKeysFromContainer, Container) ++import Ganeti.Objects (PartialNicParams) {-# ANN module "HLint: ignore Eta reduce" #-} diff --cc src/Ganeti/HTools/Backend/Rapi.hs index 03d158c,7d76751..218411c --- a/src/Ganeti/HTools/Backend/Rapi.hs +++ b/src/Ganeti/HTools/Backend/Rapi.hs @@@ -53,7 -53,7 +53,7 @@@ import System.FilePat import Ganeti.BasicTypes import Ganeti.HTools.Loader import Ganeti.HTools.Types - import Ganeti.JSON -import Ganeti.JSON (loadJSArray, JSRecord, tryFromObj, fromJVal, maybeFromObj, fromJResult, tryArrayMaybeFromObj, readEitherString, fromObjWithDefault, asJSObject) ++import Ganeti.JSON (loadJSArray, JSRecord, tryFromObj, fromJVal, maybeFromObj, fromJResult, tryArrayMaybeFromObj, readEitherString, fromObjWithDefault, asJSObject, emptyContainer) import qualified Ganeti.HTools.Group as Group import qualified Ganeti.HTools.Node as Node import qualified Ganeti.HTools.Instance as Instance diff --cc src/Ganeti/Luxi.hs index 4439cef,f763eee..831e859 --- a/src/Ganeti/Luxi.hs +++ b/src/Ganeti/Luxi.hs @@@ -73,7 -71,7 +73,7 @@@ import Text.JSON.Type import Ganeti.BasicTypes import Ganeti.Constants import Ganeti.Errors - import Ganeti.JSON -import Ganeti.JSON (fromJResult, fromJVal, Tuple5(..), MaybeForJSON(..), TimeAsDoubleJSON(..)) ++import Ganeti.JSON (fromJResult, fromJVal, fromObj, Tuple5(..), MaybeForJSON(..), TimeAsDoubleJSON(..)) import Ganeti.UDSServer import Ganeti.Objects import Ganeti.OpParams (pTagsObject) diff --cc src/Ganeti/Objects.hs index 4b92561,59abc5c..065aaa8 --- a/src/Ganeti/Objects.hs +++ b/src/Ganeti/Objects.hs @@@ -130,13 -124,11 +130,13 @@@ import qualified Text.JSON as import qualified AutoConf import qualified Ganeti.Constants as C import qualified Ganeti.ConstantUtils as ConstantUtils - import Ganeti.JSON + import Ganeti.JSON (DictObject(..), Container, emptyContainer, GenericContainer) import Ganeti.Objects.BitArray (BitArray) import Ganeti.Objects.Disk +import Ganeti.Objects.Maintenance import Ganeti.Objects.Nic import Ganeti.Objects.Instance +import Ganeti.Objects.HvState import Ganeti.Query.Language import Ganeti.PartialParams import Ganeti.Types diff --cc src/Ganeti/Query/Node.hs index 698e209,9d36c74..f431ade --- a/src/Ganeti/Query/Node.hs +++
Re: [PATCH stable-2.16] Fix some trivial pep8/pylint errors
On 7 July 2016 at 13:05, 'Brian Foley' via ganeti-devel < ganeti-devel@googlegroups.com> wrote: > Whitespace and an unused variable. > LGTM ,thanks. iustin
[PATCH stable-2.16] Fix some trivial pep8/pylint errors
Whitespace and an unused variable. Signed-off-by: Brian Foley--- lib/backend.py | 2 ++ lib/cmdlib/cluster/verify.py | 4 ++-- lib/http/server.py | 8 +--- lib/storage/bdev.py | 1 - 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/backend.py b/lib/backend.py index f0ce380..51273f6 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -1104,6 +1104,7 @@ def _VerifySshClutter(node_status_list, my_name): return result + def VerifyNodeNetTest(my_name, test_config): """Verify nodes are reachable. @@ -1146,6 +1147,7 @@ def VerifyNodeNetTest(my_name, test_config): " and ".join(fail)) return result + def VerifyMasterIP(my_name, test_config): """Verify master IP is reachable. diff --git a/lib/cmdlib/cluster/verify.py b/lib/cmdlib/cluster/verify.py index 0036f69..8785fbc 100644 --- a/lib/cmdlib/cluster/verify.py +++ b/lib/cmdlib/cluster/verify.py @@ -779,8 +779,8 @@ class LUClusterVerifyGroup(LogicalUnit, _VerifyErrors): if constants.NV_MASTERIP not in nresult: self._ErrorMsg(constants.CV_ENODENET, ninfo.name, -"node hasn't returned node master IP reachability data") -elif nresult[constants.NV_MASTERIP] == False: # be explicit, could be None + "node hasn't returned node master IP reachability data") +elif nresult[constants.NV_MASTERIP] == False: # be explicit, could be None if ninfo.uuid == self.master_node: msg = "the master node cannot reach the master IP (not configured?)" else: diff --git a/lib/http/server.py b/lib/http/server.py index 8b3a4ee..9a4563e 100644 --- a/lib/http/server.py +++ b/lib/http/server.py @@ -423,7 +423,8 @@ class HttpServerRequestExecutor(object): try: http.Handshake(sock, self.WRITE_TIMEOUT) except http.HttpSessionHandshakeUnexpectedEOF: -logging.debug("Unexpected EOF from %s:%s" % (client_addr[0], client_addr[1])) +logging.debug("Unexpected EOF from %s:%s", + client_addr[0], client_addr[1]) # Ignore rest return @@ -609,8 +610,9 @@ class HttpServer(http.HttpBase, asyncore.dispatcher): t_setup = time.time() self.request_executor(self, self.handler, connection, client_addr) t_end = time.time() -logging.debug("Request from %s:%s executed in: %.4f [setup: %.4f] [workers: %d]" % ( -client_addr[0], client_addr[1], t_end - t_start, t_setup - t_start, len(self._children))) +logging.debug("Request from %s:%s executed in: %.4f [setup: %.4f] " + "[workers: %d]", client_addr[0], client_addr[1], + t_end - t_start, t_setup - t_start, len(self._children)) except Exception: # pylint: disable=W0703 logging.exception("Error while handling request from %s:%s", diff --git a/lib/storage/bdev.py b/lib/storage/bdev.py index 1f95004..7c1897c 100644 --- a/lib/storage/bdev.py +++ b/lib/storage/bdev.py @@ -510,7 +510,6 @@ class LogicalVolume(base.BlockDev): logging.warning("lvs command returned an empty output, the LV cache will" "be empty!") return {} -info = {} return dict([LogicalVolume._ParseLvInfoLine(line, sep) for line in out]) def Attach(self, lv_info=None): -- 2.8.0.rc3.226.g39d4020
Re: [MERGE] stable-2.15 to stable 2.16
LGTM, thanks! On Thursday, July 7, 2016 at 11:39:07 AM UTC+1, Brian Foley wrote: > > commit ad83a3d144c18a7191b7852c01871b43e83b54bd > Merge: 24da2b1 55ad60e > Author: Brian Foley> Date: Thu Jul 7 11:31:19 2016 +0100 > > Merge branch 'stable-2.15' into stable-2.16 > > * stable-2.15 > Cleanup more pylint/pep8/apidoc errors > KVM: handle gracefully too old/too new psutil versions > > Manually fix up merge conflicts. > > Signed-off-by: Brian Foley > >
[MERGE] stable-2.15 to stable 2.16
commit ad83a3d144c18a7191b7852c01871b43e83b54bd Merge: 24da2b1 55ad60e Author: Brian FoleyDate: Thu Jul 7 11:31:19 2016 +0100 Merge branch 'stable-2.15' into stable-2.16 * stable-2.15 Cleanup more pylint/pep8/apidoc errors KVM: handle gracefully too old/too new psutil versions Manually fix up merge conflicts. Signed-off-by: Brian Foley