Module Expr Str Import alias Import alias Import alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias Assign NameStore Call AttributeLoad NameLoad attr Str keyword Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Num For NameStore AttributeLoad NameLoad attr body If CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore Call NameLoad AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareIs NameLoad NameLoad CompareGtE NameLoad Num body Return Assign NameStore Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad Str attr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword NameLoad keyword Num keyword NameLoad If UnaryOpNot NameLoad body Raise Call NameLoad Call AttributeLoad Str attr AttributeLoad NameLoad attr NameLoad Assign NameStore NameLoad For NameStore AttributeLoad NameLoad attr body For NameStore AttributeLoad NameLoad attr body If CompareIn AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore NameLoad Break If CompareIs NameLoad NameLoad body Raise Call NameLoad Call AttributeLoad Str attr AttributeLoad NameLoad attr Assign NameStore ListComp NameLoad comprehension NameStore AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr If UnaryOpNot NameLoad body Raise Call NameLoad Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad NameLoad Index Num AugAssignAdd NameStore Num Assign NameStore Call NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr ListLoad SubscriptLoad NameLoad Index Num Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Assign NameStore Call NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr ImportFrom alias Assign NameStore Call AttributeLoad NameLoad attr NameLoad Dict Str Str Str Str Str NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr If CompareIsNot NameLoad NameLoad body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Dict Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call NameLoad Str AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword NameLoad Expr Call AttributeLoad NameLoad attr NameLoad keyword NameLoad Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str If BoolOpAnd CompareGt Call NameLoad AttributeLoad NameLoad attr Num CompareIs NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr If CompareIs NameLoad NameLoad body For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr TryExcept body Assign NameStore Call NameLoad NameLoad If CompareIs NameLoad NameLoad body Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Dict Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad ListComp NameLoad comprehension NameStore AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Index Num Assign NameStore Call NameLoad Str AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword NameLoad Expr Call AttributeLoad NameLoad attr NameLoad keyword NameLoad Assign NameStore Num While CompareGt NameLoad Num body TryExcept body Assign NameStore Call NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr keyword NameLoad keyword NameLoad For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr NameLoad Break handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Raise handlers ExceptHandler type NameLoad body If CompareIs NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str orelse Raise decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr ListLoad Str Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Str Assign NameStore Dict For NameStore NameLoad body If CompareNotIn SubscriptLoad NameLoad Index Str NameLoad body Assign SubscriptStore NameLoad Index SubscriptLoad NameLoad Index Str ListLoad Expr Call AttributeLoad SubscriptLoad NameLoad Index SubscriptLoad NameLoad Index Str attr SubscriptLoad NameLoad Index Str Assign NameStore Dict For NameStore AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareEq SubscriptLoad SubscriptLoad NameLoad Index Num Index Str AttributeLoad NameLoad attr CompareEq SubscriptLoad SubscriptLoad NameLoad Index Num Index Str SubscriptLoad AttributeLoad NameLoad attr Index Num body Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr If CompareNotIn AttributeLoad NameLoad attr NameLoad body Assign SubscriptStore NameLoad Index AttributeLoad NameLoad attr ListLoad Expr Call AttributeLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd CompareIn AttributeLoad NameLoad attr NameLoad CompareIn SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad NameLoad Index AttributeLoad NameLoad attr body Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr If CompareNotIn AttributeLoad NameLoad attr NameLoad body Assign SubscriptStore NameLoad Index AttributeLoad NameLoad attr ListLoad Expr Call AttributeLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Expr Call AttributeLoad NameLoad attr For TupleStore NameStore NameStore Call AttributeLoad NameLoad attr body For NameStore NameLoad body If BoolOpOr CompareNotIn NameLoad NameLoad CompareNotIn NameLoad SubscriptLoad NameLoad Index NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad ListLoad NameLoad If CompareIsNot NameLoad NameLoad body Assign NameStore Call NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr BoolOpAnd CompareEq SubscriptLoad SubscriptLoad NameLoad Index Num Index Str AttributeLoad AttributeLoad NameLoad attr attr CompareEq SubscriptLoad SubscriptLoad NameLoad Index Num Index Str SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults NameLoad body Expr Str FunctionDef arguments args NameParam NameParam defaults body If CompareLt Call NameLoad NameLoad NameLoad body For NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad body For NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad body If BoolOpAnd CompareLt Call NameLoad NameLoad NameLoad CompareNotIn AttributeLoad AttributeLoad NameLoad attr attr NameLoad body TryExcept body Expr Call NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Return TupleLoad NameLoad NameLoad decorator_list Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr ListLoad Str Str Str If CompareIs AttributeLoad NameLoad attr NameLoad body Raise Call NameLoad Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareIs NameLoad NameLoad body Assign NameStore ListLoad Assign NameStore Call NameLoad ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr CompareNotIn AttributeLoad AttributeLoad NameLoad attr attr NameLoad keyword Lambda arguments args NameParam defaults AttributeLoad NameLoad attr Assign NameStore Call NameLoad GeneratorExp AttributeLoad AttributeLoad NameLoad attr attr comprehension NameStore NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr If CompareIsNot AttributeLoad NameLoad attr NameLoad body Assign NameStore AttributeLoad NameLoad attr orelse Assign NameStore AttributeLoad NameLoad attr Assign NameStore Dict NameLoad Dict Assign NameStore Dict NameLoad ListLoad Assign NameStore Dict NameLoad ListLoad Assign NameStore Call NameLoad GeneratorExp TupleLoad NameLoad NameLoad comprehension NameStore AttributeLoad NameLoad attr If CompareIsNot NameLoad NameLoad body Assign SubscriptStore NameLoad Index NameLoad Dict Assign SubscriptStore NameLoad Index NameLoad ListLoad Assign SubscriptStore NameLoad Index NameLoad ListLoad Expr Call AttributeLoad NameLoad attr Call NameLoad GeneratorExp TupleLoad NameLoad NameLoad comprehension NameStore AttributeLoad NameLoad attr Assign NameStore Dict Assign NameStore Dict For NameStore NameLoad body Assign SubscriptStore NameLoad Index NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Call AttributeLoad Str attr AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Str For NameStore NameLoad body Assign SubscriptStore NameLoad Index Str Call AttributeLoad Str attr SubscriptLoad NameLoad Index Str SubscriptLoad NameLoad Index Str Assign NameStore NameLoad Assign NameStore ListLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr Num If CompareIn SubscriptLoad NameLoad Index Str NameLoad body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr SubscriptLoad NameLoad Index Str SubscriptLoad NameLoad Index Str Assign NameStore ListLoad For NameStore NameLoad body If CompareIn SubscriptLoad NameLoad Index Str NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index SubscriptLoad NameLoad Index Str orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr SubscriptLoad NameLoad Index Str SubscriptLoad NameLoad Index Str Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr Str For NameStore NameLoad body If BoolOpOr CompareEq NameLoad NameLoad CompareIn NameLoad NameLoad body Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num If CompareIn AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad SubscriptLoad NameLoad Index SubscriptLoad NameLoad Index AttributeLoad NameLoad attr attr NameLoad orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr orelse Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign SubscriptStore NameLoad Index NameLoad NameLoad If CompareIn AttributeLoad NameLoad attr NameLoad body Assign NameStore SubscriptLoad NameLoad Index AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad NameLoad Index NameLoad attr NameLoad If CompareLtE NameLoad NameLoad body If CompareNotIn NameLoad SubscriptLoad NameLoad Index NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index NameLoad ListLoad Expr Call AttributeLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad attr NameLoad Assign NameStore ListLoad If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr For NameStore NameLoad body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str orelse Expr Call AttributeLoad NameLoad attr NameLoad If CompareGt Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str If BoolOpAnd CompareLt Call NameLoad NameLoad NameLoad CompareLt Call NameLoad NameLoad Call NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str If BoolOpAnd CompareIsNot NameLoad NameLoad CompareGt SubscriptLoad NameLoad Index NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str If BoolOpAnd CompareIsNot NameLoad NameLoad CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Str If Call NameLoad GeneratorExp NameLoad comprehension NameStore NameLoad CompareGt SubscriptLoad NameLoad Index NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str Assign NameStore IfExp CompareIsNot NameLoad NameLoad Call AttributeLoad NameLoad attr BinOpDiv NameLoad Num NameLoad Assign NameStore BinOpSub NameLoad NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad CompareNotIn NameLoad SubscriptLoad NameLoad Index NameLoad body Expr Call AttributeLoad NameLoad attr Str Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad If BoolOpAnd CompareLt NameLoad NameLoad CompareLt NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str If CompareIsNot NameLoad NameLoad body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad If BoolOpAnd CompareLt NameLoad NameLoad CompareLt NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str Assign NameStore NameLoad For NameStore NameLoad body If BoolOpAnd CompareIs NameLoad NameLoad CompareIn NameLoad SubscriptLoad NameLoad Index NameLoad body Expr Call AttributeLoad NameLoad attr Str Break If CompareIn NameLoad SubscriptLoad NameLoad Index NameLoad body Assign NameStore NameLoad If UnaryOpNot NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Return Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr NameLoad Assign NameStore ListLoad Assign NameStore CompareIsNot NameLoad NameLoad If CompareIs NameLoad NameLoad body Assign NameStore BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareLtE SubscriptLoad NameLoad Index NameLoad NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore NameLoad Assign NameStore Num Assign NameStore NameLoad Assign NameStore Num For NameStore SubscriptLoad NameLoad Index NameLoad body Assign NameStore SubscriptLoad NameLoad Index NameLoad If BoolOpAnd CompareLtE NameLoad NameLoad CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If BoolOpOr CompareIs NameLoad NameLoad CompareGt NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore NameLoad If CompareIn NameLoad NameLoad body If BoolOpOr CompareIs NameLoad NameLoad CompareGt NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore NameLoad If CompareIsNot NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad TryExcept body Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad name NameStore body If CompareIn Str AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad orelse Raise If CompareLt NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr Call NameLoad BinOpSub Call AttributeLoad NameLoad attr NameLoad Num Expr Call AttributeLoad NameLoad attr NameLoad If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad GeneratorExp AttributeLoad AttributeLoad NameLoad attr attr comprehension NameStore NameLoad Assign NameStore Num Assign NameStore NameLoad If CompareLt Call NameLoad NameLoad NameLoad body If CompareGt NameLoad Num body For NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad body For NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad body If BoolOpAnd CompareIs NameLoad NameLoad CompareIn NameLoad NameLoad CompareNotIn AttributeLoad AttributeLoad NameLoad attr attr NameLoad body TryExcept body Expr Call NameLoad AttributeLoad NameLoad attr Assign NameStore NameLoad handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If BoolOpAnd CompareIs NameLoad NameLoad CompareIsNot NameLoad NameLoad body For NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad body For NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad body If BoolOpAnd CompareIs NameLoad NameLoad CompareIn NameLoad NameLoad CompareNotIn AttributeLoad AttributeLoad NameLoad attr attr NameLoad body TryExcept body Expr Call NameLoad AttributeLoad NameLoad attr Assign NameStore NameLoad Assign NameStore Num handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad If CompareEq NameLoad Num body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign TupleStore NameStore NameStore Call NameLoad keyword NameLoad keyword NameLoad If CompareEq NameLoad Num body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If CompareIsNot NameLoad NameLoad body Assign TupleStore NameStore NameStore Call NameLoad keyword NameLoad keyword NameLoad If CompareLt Call NameLoad NameLoad NameLoad body Assign TupleStore NameStore NameStore Call NameLoad keyword NameLoad keyword NameLoad Assign NameStore ListLoad For NameStore NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call NameLoad keyword Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr keyword SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr keyword Call NameLoad AttributeLoad NameLoad attr keyword Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore TupleLoad NameLoad Call NameLoad Str For NameStore AttributeLoad NameLoad attr body If CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad Call AttributeLoad NameLoad attr NameLoad Index Num If BoolOpOr CompareIs NameLoad NameLoad CompareLt NameLoad SubscriptLoad NameLoad Index Num body Assign NameStore TupleLoad NameLoad NameLoad Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Call NameLoad AttributeLoad NameLoad attr If CompareLt NameLoad Num body Return TupleLoad Num Num If CompareEq NameLoad Num body Return TupleLoad Call NameLoad Str Call NameLoad Str Assign NameStore Call NameLoad AttributeLoad NameLoad attr Return TupleLoad Call NameLoad BinOpMult BinOpDiv NameLoad NameLoad Num Num Call NameLoad BinOpMult BinOpDiv BinOpAdd NameLoad Num NameLoad Num Num decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults NameLoad body Expr Str Assign NameStore Dict Assign NameStore Dict For NameStore AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr If CompareIs NameLoad NameLoad body TryExcept body Assign NameStore Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Str handlers ExceptHandler type NameLoad body Continue Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad If CompareIs NameLoad NameLoad body Raise Call NameLoad Str Assign SubscriptStore NameLoad Index NameLoad Dict Str Str AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num If CompareNotIn NameLoad NameLoad body Assign SubscriptStore NameLoad Index NameLoad ListLoad Expr Call AttributeLoad SubscriptLoad NameLoad Index NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore Dict For TupleStore NameStore NameStore Call AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index AttributeLoad NameLoad attr ListLoad NameLoad For NameStore Call NameLoad NameLoad body If CompareGtE Call NameLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr NameLoad body Break Assign NameStore SubscriptLoad NameLoad Index NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore NameLoad body If CompareGtE Call NameLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr NameLoad body Break If BoolOpAnd CompareNotEq NameLoad NameLoad CompareIn NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr attr SubscriptLoad NameLoad Index NameLoad If CompareIsNot NameLoad NameLoad body For NameStore Call NameLoad NameLoad body If CompareGtE Call NameLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr NameLoad body Break Assign NameStore SubscriptLoad NameLoad Index NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore NameLoad body If CompareGtE Call NameLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr NameLoad body Break If BoolOpAnd CompareNotEq NameLoad NameLoad CompareIn NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad SubscriptLoad NameLoad Index AttributeLoad NameLoad attr attr SubscriptLoad NameLoad Index NameLoad Return NameLoad decorator_list NameLoad FunctionDef arguments args defaults body Expr Str Expr Call AttributeLoad NameLoad attr Str Assign NameStore Dict For NameStore Call AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index NameLoad Dict For NameStore AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareNotIn NameLoad SubscriptLoad NameLoad Index NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index NameLoad Dict Str Str NameLoad ListLoad TryExcept body Assign NameStore Call NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Str Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Index Str NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Index Str attr NameLoad Assign NameStore ListLoad Assign NameStore Call AttributeLoad NameLoad attr Str For TupleStore NameStore NameStore Call AttributeLoad NameLoad attr body For NameStore NameLoad body Assign NameStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Index Str Assign NameStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Index Str Assign NameStore NameLoad For NameStore SubscriptLoad NameLoad Slice body If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword NameLoad keyword CompareIs NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore NameLoad body Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad If CompareLt NameLoad NameLoad body Assign NameStore NameLoad Break Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareIs NameLoad NameLoad CompareIsNot NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword NameLoad keyword NameLoad keyword NameLoad If CompareIs NameLoad NameLoad body Raise Call NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad For NameStore NameLoad body Assign NameStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Index Str If CompareIs NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Continue Assign NameStore SubscriptLoad ListComp NameLoad comprehension NameStore AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Index Num Assign NameStore Call NameLoad Str AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr If CompareIs AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr SubscriptLoad NameLoad Index AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword SubscriptLoad NameLoad Index AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr For NameStore AttributeLoad NameLoad attr body TryExcept body Expr Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad name NameStore body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad If CompareGt Call NameLoad NameLoad Num body Raise Call NameLoad BinOpAdd Str Call AttributeLoad Str attr NameLoad Expr Call AttributeLoad NameLoad attr Str decorator_list NameLoad Call AttributeLoad NameLoad attr keyword Str keyword Call NameLoad keyword Str keyword Str Call NameLoad keyword Str keyword Str decorator_list If CompareEq NameLoad Str body ImportFrom alias TryExcept body While NameLoad body Assign NameStore ListLoad Str Str Str Call AttributeLoad Str attr Call AttributeLoad NameLoad attr Str For NameStore Call AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call NameLoad GeneratorExp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr For NameStore AttributeLoad NameLoad attr body If CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore TupleLoad Num Num For NameStore AttributeLoad NameLoad attr body If AttributeLoad NameLoad attr body AugAssignAdd NameStore Num orelse AugAssignAdd NameStore Num Assign NameStore AttributeLoad NameLoad attr If CompareEq NameLoad Num body Assign NameStore Str Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad If CompareEq NameLoad Call NameLoad Str body Assign NameStore Str orelse Assign NameStore Call AttributeLoad Str attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num NameLoad NameLoad NameLoad NameLoad AugAssignAdd NameStore ListLoad Str Str Str Print BinOpAdd Str Call AttributeLoad Str attr NameLoad Expr Call AttributeLoad NameLoad attr Num handlers ExceptHandler type NameLoad body Pass
N/A N/A 
MDSService module
 N/A math N/A time N/A random celery.schedules crontab ovs.celery_run celery ovs.dal.hybrids.diskpartition DiskPartition ovs.dal.hybrids.j_mdsservice MDSService ovs.dal.hybrids.j_mdsservicevdisk MDSServiceVDisk ovs.dal.hybrids.j_storagedriverpartition StorageDriverPartition ovs.dal.hybrids.service Service ovs.dal.hybrids.servicetype ServiceType ovs.dal.hybrids.storagerouter StorageRouter ovs.dal.lists.servicelist ServiceList ovs.dal.lists.servicetypelist ServiceTypeList ovs.dal.lists.vpoollist VPoolList ovs.extensions.db.etcd.configuration EtcdConfiguration ovs.extensions.generic.sshclient SSHClient ovs.extensions.generic.sshclient UnableToConnectException ovs.extensions.generic.system System ovs.extensions.storageserver.storagedriver MetadataServerClient ovs.extensions.storageserver.storagedriver StorageDriverConfiguration ovs.lib.helpers.decorators ensure_single ovs.log.logHandler LogHandler volumedriver.storagerouter storagerouterclient volumedriver.storagerouter.storagerouterclient MDSMetaDataBackendConfig volumedriver.storagerouter.storagerouterclient MDSNodeConfig N/A logger N/A N/A LogHandler get lib name mds N/A N/A N/A N/A storagerouterclient Logger setupLogging N/A N/A LogHandler load_path storagerouterclient N/A N/A N/A N/A storagerouterclient Logger enableLogging MDSServiceController N/A object N/A N/A 
    Contains all BLL related to MDSServices
     prepare_mds_service N/A N/A storagerouter vpool fresh_only reload_config N/A N/A N/A 
        Prepares an MDS service:
        * Creates the required configuration
        * Sets up the service files

        Assumes the StorageRouter and VPool are already configured with a StorageDriver and that all model-wise
        configuration regarding both is completed.
        :param storagerouter: Storagerouter on which MDS service will be created
        :type storagerouter: StorageRouter

        :param vpool: The vPool for which the MDS service will be created
        :type vpool: VPool

        :param fresh_only: If True and no current mds services exist for this vpool on this storagerouter, a new 1 will be created
        :type fresh_only: bool

        :param reload_config: If True, the volumedriver's updated configuration will be reloaded
        :type reload_config: bool

        :return: Newly created service
        :rtype: MDSService
         N/A service_number -1 N/A mds_service N/A vpool mds_services N/A N/A N/A N/A N/A mds_service service storagerouter_guid N/A storagerouter guid N/A N/A service_number N/A max N/A mds_service number service_number N/A N/A N/A fresh_only True N/A service_number 0 N/A N/A N/A client N/A SSHClient storagerouter N/A mdsservice_type N/A N/A ServiceTypeList get_by_name N/A N/A ServiceType SERVICE_TYPES MD_SERVER N/A occupied_ports N/A N/A service N/A mdsservice_type services N/A N/A N/A N/A service storagerouter_guid N/A storagerouter guid N/A N/A N/A N/A occupied_ports extend N/A service ports N/A mds_port_range N/A N/A EtcdConfiguration get N/A N/A /ovs/framework/hosts/{0}/ports|mds format N/A N/A System get_my_machine_id client N/A free_ports N/A N/A System get_free_ports selected_range mds_port_range exclude occupied_ports nr 1 client client N/A N/A free_ports N/A N/A N/A RuntimeError N/A N/A Failed to find an available port on storage router {0} within range {1} format N/A storagerouter name mds_port_range N/A db_partition None N/A disk N/A storagerouter disks N/A N/A partition N/A disk partitions N/A N/A N/A N/A N/A DiskPartition ROLES DB N/A partition roles N/A N/A db_partition partition N/A N/A N/A db_partition None N/A N/A N/A RuntimeError N/A N/A Could not find DB partition on storage router {0} format N/A storagerouter name N/A storagedrivers N/A sd N/A sd N/A vpool storagedrivers N/A N/A sd storagerouter_guid N/A storagerouter guid N/A N/A storagedrivers N/A N/A N/A RuntimeError N/A N/A Expected to find a configured storagedriver for vpool {0} on storage router {1} format N/A vpool name N/A storagerouter name N/A storagedriver N/A storagedrivers N/A 0 N/A service_number 1 N/A service N/A Service N/A N/A service name N/A N/A metadataserver_{0}_{1} format N/A vpool name service_number N/A N/A service type mdsservice_type N/A N/A service ports N/A N/A free_ports N/A 0 N/A N/A service storagerouter storagerouter N/A N/A N/A service save N/A mds_service N/A MDSService N/A N/A mds_service vpool vpool N/A N/A mds_service number service_number N/A N/A mds_service service service N/A N/A N/A mds_service save ovs.lib.storagedriver StorageDriverController N/A sdp N/A N/A StorageDriverController add_storagedriverpartition storagedriver N/A size role sub_role partition mds_service None N/A N/A DiskPartition ROLES DB N/A N/A StorageDriverPartition SUBROLE MDS db_partition mds_service N/A mds_nodes N/A N/A service N/A mdsservice_type services N/A N/A N/A N/A service storagerouter_guid N/A storagerouter guid N/A N/A mds_service N/A service mds_service N/A N/A mds_service None N/A N/A N/A N/A mds_service vpool_guid N/A vpool guid N/A N/A N/A N/A mds_nodes append N/A host port db_directory scratch_directory N/A N/A service storagerouter ip N/A N/A service ports N/A 0 N/A sdp path N/A sdp path N/A storagedriver_config N/A StorageDriverConfiguration storagedriver N/A vpool guid N/A storagedriver storagedriver_id N/A N/A N/A storagedriver_config load N/A N/A N/A storagedriver_config clean N/A N/A N/A storagedriver_config configure_metadata_server mds_nodes mds_nodes N/A N/A N/A storagedriver_config save client reload_config reload_config N/A mds_service N/A staticmethod remove_mds_service N/A N/A mds_service vpool reconfigure allow_offline N/A False N/A N/A 
        Removes an MDS service
        :param mds_service: The MDS service to remove
        :type mds_service: MDSService

        :param vpool: The vPool for which the MDS service will be removed
        :type vpool: VPool

        :param reconfigure: Indicates whether reconfiguration is required
        :type reconfigure: bool

        :param allow_offline: Indicates whether it's OK that the node for which mds services are cleaned is offline
        :type allow_offline: bool
         N/A N/A N/A N/A len N/A mds_service vdisks_guids 0 N/A allow_offline False N/A N/A N/A RuntimeError Cannot remove MDSService that is still serving disks N/A mdsservice_type N/A N/A ServiceTypeList get_by_name N/A N/A ServiceType SERVICE_TYPES MD_SERVER N/A directories_to_clean N/A N/A sd_partition N/A mds_service storagedriver_partitions N/A N/A N/A N/A directories_to_clean append N/A sd_partition path N/A N/A N/A sd_partition delete N/A N/A allow_offline True N/A N/A junction N/A mds_service vdisks N/A N/A N/A N/A junction delete N/A N/A N/A mds_service delete N/A N/A N/A N/A mds_service service delete N/A storagerouter N/A N/A mds_service service storagerouter N/A N/A N/A client N/A SSHClient storagerouter N/A N/A reconfigure True N/A N/A mds_nodes N/A N/A service N/A mdsservice_type services N/A N/A N/A N/A service storagerouter_guid N/A storagerouter guid N/A N/A mds_service N/A service mds_service N/A N/A N/A mds_service vpool_guid N/A vpool guid N/A N/A sdp N/A N/A sd_partition path N/A sd_partition N/A mds_service storagedriver_partitions N/A N/A sd_partition role N/A N/A DiskPartition ROLES DB N/A N/A N/A mds_nodes append N/A host port db_directory scratch_directory N/A N/A service storagerouter ip N/A N/A service ports N/A 0 N/A sdp N/A 0 N/A sdp N/A 0 N/A storagedriver N/A N/A sd N/A sd N/A storagerouter storagedrivers N/A N/A sd vpool_guid N/A vpool guid N/A 0 N/A storagedriver_config N/A StorageDriverConfiguration storagedriver N/A vpool guid N/A storagedriver storagedriver_id N/A N/A N/A storagedriver_config load N/A N/A N/A storagedriver_config clean N/A N/A N/A storagedriver_config configure_metadata_server mds_nodes mds_nodes N/A N/A N/A storagedriver_config save client reload_config reconfigure N/A tries 5 N/A N/A tries 0 N/A N/A N/A N/A root_client N/A SSHClient storagerouter username root N/A N/A N/A root_client dir_delete directories directories_to_clean follow_symlinks True N/A dir_name directories_to_clean N/A N/A N/A N/A logger debug N/A N/A Recursively removed {0} format dir_name N/A N/A N/A N/A Exception N/A N/A N/A N/A logger debug Waiting for the MDS service to go down... N/A N/A N/A time sleep 5 N/A tries 1 N/A N/A tries 0 N/A N/A N/A N/A N/A UnableToConnectException N/A N/A N/A allow_offline True N/A N/A N/A N/A logger info Allowed offline node during mds service removal N/A N/A N/A staticmethod sync_vdisk_to_reality N/A N/A vdisk N/A N/A N/A 
        Syncs a vdisk to reality (except hypervisor)
        :param vdisk: vDisk to synchronize
        :type vdisk: VDisk

        :return: None
         N/A N/A N/A vdisk reload_client N/A N/A N/A vdisk invalidate_dynamics N/A info N/A config N/A N/A vdisk info N/A metadata_backend_config N/A config_dict N/A N/A item config N/A N/A N/A N/A item N/A ip config_dict N/A N/A N/A config_dict N/A N/A item N/A ip N/A N/A N/A N/A N/A config_dict N/A N/A item N/A ip append N/A item N/A port N/A mds_dict N/A N/A junction N/A vdisk mds_services N/A N/A service N/A N/A junction mds_service service N/A storagerouter N/A service storagerouter N/A N/A N/A N/A N/A config N/A 0 N/A ip N/A storagerouter ip N/A N/A N/A config N/A 0 N/A port N/A N/A service ports N/A 0 N/A N/A N/A junction is_master True N/A N/A N/A junction save N/A N/A N/A storagerouter ip mds_dict N/A N/A N/A mds_dict N/A N/A storagerouter ip N/A N/A N/A N/A N/A mds_dict N/A N/A storagerouter ip append N/A N/A service ports N/A 0 N/A N/A N/A N/A N/A storagerouter ip config_dict N/A N/A N/A service ports N/A 0 N/A config_dict N/A N/A storagerouter ip N/A N/A N/A junction is_master False N/A N/A N/A junction save N/A N/A N/A storagerouter ip mds_dict N/A N/A N/A mds_dict N/A N/A storagerouter ip N/A N/A N/A N/A N/A mds_dict N/A N/A storagerouter ip append N/A N/A service ports N/A 0 N/A N/A N/A N/A junction delete N/A N/A ip ports N/A N/A config_dict iteritems N/A N/A port ports N/A N/A N/A N/A ip mds_dict N/A port N/A mds_dict N/A ip N/A N/A service N/A N/A ServiceList get_by_ip_ports ip N/A port N/A N/A service None N/A N/A mds_service_vdisk N/A MDSServiceVDisk N/A N/A mds_service_vdisk vdisk vdisk N/A N/A mds_service_vdisk mds_service N/A service mds_service N/A N/A mds_service_vdisk is_master N/A N/A N/A N/A config N/A 0 N/A ip N/A N/A service storagerouter ip N/A N/A N/A config N/A 0 N/A port N/A N/A service ports N/A 0 N/A N/A N/A mds_service_vdisk save N/A staticmethod ensure_safety N/A N/A vdisk excluded_storagerouters N/A None N/A N/A 
        Ensures (or tries to ensure) the safety of a given vdisk (except hypervisor).
        Assumptions:
        * A local overloaded master is better than a non-local non-overloaded master
        * Prefer master/services to be on different hosts, a subsequent slave on the same node doesn't add safety
        * Don't actively overload services (e.g. configure an MDS as slave causing it to get overloaded)
        * Too much safety is not wanted (it adds loads to nodes while not required)
        :param vdisk: vDisk to calculate a new safety for
        :type vdisk: VDisk

        :param excluded_storagerouters: Storagerouters to leave out of calculation (Eg: When 1 is down or unavailable)
        :type excluded_storagerouters: list

        :return: None
         _add_suitable_nodes N/A N/A local_failure_domain local_safety N/A N/A N/A N/A N/A len nodes local_safety N/A N/A local_load N/A sorted N/A failure_domain_load_dict N/A local_failure_domain N/A N/A local_service N/A N/A failure_domain_load_dict N/A local_failure_domain N/A local_load N/A N/A N/A N/A N/A len nodes local_safety N/A N/A N/A local_service storagerouter ip nodes N/A N/A N/A N/A N/A SSHClient N/A local_service storagerouter N/A N/A N/A new_services append local_service N/A N/A N/A nodes add N/A N/A local_service storagerouter ip N/A N/A N/A UnableToConnectException N/A N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: Skipping storagerouter with IP {1} as it is unreachable format N/A vdisk guid N/A N/A service storagerouter ip N/A N/A nodes new_services N/A N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: Start checkup for virtual disk {1} format N/A vdisk guid N/A vdisk name N/A N/A N/A vdisk reload_client N/A N/A N/A vdisk invalidate_dynamics N/A info storagedriver_id storagerouter_guid N/A N/A N/A vdisk storagerouter_guid None N/A N/A N/A ValueError N/A N/A Cannot ensure MDS safety for vDisk {0} with guid {1} because vDisk is not attached to any Storage Router format N/A vdisk name N/A vdisk guid N/A N/A excluded_storagerouters None N/A N/A excluded_storagerouters N/A N/A services N/A sorted N/A N/A mds_service service N/A mds_service N/A N/A vdisk vpool mds_services N/A N/A N/A mds_service service storagerouter excluded_storagerouters key N/A N/A N/A k N/A N/A k ports N/A nodes N/A set N/A N/A N/A service storagerouter ip N/A service services N/A vdisk_storagerouter N/A StorageRouter N/A vdisk storagerouter_guid N/A primary_failure_domain N/A vdisk_storagerouter primary_failure_domain N/A N/A N/A vdisk secondary_failure_domain None N/A N/A secondary_failure_domain N/A vdisk secondary_failure_domain N/A N/A secondary_failure_domain N/A vdisk_storagerouter secondary_failure_domain N/A failure_domain_load_dict N/A primary_failure_domain N/A N/A failure_domain_used_services_dict N/A primary_failure_domain N/A N/A failure_domain_available_services_dict N/A primary_failure_domain N/A N/A storage_router_failure_domain_dict N/A dict N/A N/A storage_router primary_failure_domain N/A storage_router N/A primary_failure_domain primary_storagerouters N/A N/A secondary_failure_domain None N/A N/A N/A failure_domain_load_dict N/A secondary_failure_domain N/A N/A N/A failure_domain_used_services_dict N/A secondary_failure_domain N/A N/A N/A failure_domain_available_services_dict N/A secondary_failure_domain N/A N/A N/A N/A storage_router_failure_domain_dict update N/A dict N/A N/A storage_router secondary_failure_domain N/A storage_router N/A secondary_failure_domain primary_storagerouters N/A services_load N/A N/A service_per_key N/A N/A service services N/A N/A N/A services_load N/A service N/A N/A MDSServiceController get_mds_load N/A service mds_service N/A N/A service_per_key N/A N/A N/A {0}:{1} format N/A N/A service storagerouter ip N/A N/A service ports N/A 0 service N/A configs N/A N/A vdisk info N/A metadata_backend_config N/A config configs N/A N/A N/A config N/A key N/A N/A {0}:{1} format N/A config N/A ip N/A config N/A port N/A master_service None N/A reconfigure_reasons N/A N/A N/A N/A len configs 0 N/A N/A config N/A N/A configs pop 0 N/A N/A N/A config N/A key service_per_key N/A N/A master_service N/A N/A service_per_key get N/A config N/A key N/A N/A N/A N/A reconfigure_reasons append N/A N/A Master ({0}:{1}) cannot be used anymore format N/A config N/A ip N/A config N/A port N/A slave_services N/A N/A config configs N/A N/A N/A N/A config N/A key service_per_key N/A N/A N/A N/A slave_services append N/A service_per_key N/A N/A config N/A key N/A N/A N/A N/A reconfigure_reasons append N/A N/A Slave ({0}:{1}) cannot be used anymore format N/A config N/A ip N/A config N/A port N/A tlogs N/A N/A EtcdConfiguration get /ovs/framework/storagedriver|mds_tlogs N/A safety N/A N/A EtcdConfiguration get /ovs/framework/storagedriver|mds_safety N/A max_load N/A N/A EtcdConfiguration get /ovs/framework/storagedriver|mds_maxload N/A service services N/A N/A N/A N/A service master_service N/A service slave_services N/A N/A load N/A N/A services_load N/A service N/A 0 N/A N/A N/A service storagerouter storage_router_failure_domain_dict N/A N/A N/A N/A N/A failure_domain_used_services_dict N/A N/A storage_router_failure_domain_dict N/A N/A service storagerouter append service N/A N/A N/A N/A reconfigure_reasons append N/A N/A Service {0} cannot be used anymore because storagerouter with IP {1} is not part of the failure domains format N/A service name N/A N/A service storagerouter ip N/A N/A load N/A N/A services_load N/A service N/A 1 N/A N/A services_load N/A service load N/A N/A N/A service storagerouter storage_router_failure_domain_dict N/A N/A failure_domain N/A storage_router_failure_domain_dict N/A N/A service storagerouter N/A N/A N/A N/A failure_domain_available_services_dict N/A failure_domain append service N/A N/A load max_load N/A N/A N/A load N/A failure_domain_load_dict N/A failure_domain N/A N/A N/A N/A failure_domain_load_dict N/A failure_domain N/A load N/A N/A N/A N/A N/A N/A failure_domain_load_dict N/A failure_domain N/A load append service N/A service_nodes N/A N/A N/A master_service None N/A N/A N/A N/A service_nodes append N/A N/A master_service storagerouter ip N/A service slave_services N/A N/A ip N/A N/A service storagerouter ip N/A N/A ip service_nodes N/A N/A N/A N/A reconfigure_reasons append Multiple MDS services on the same node N/A N/A N/A N/A service_nodes append ip N/A N/A N/A len service_nodes safety N/A N/A N/A N/A reconfigure_reasons append Too much safety N/A N/A N/A N/A len service_nodes safety N/A N/A len service_nodes N/A len nodes N/A N/A N/A N/A reconfigure_reasons append Not enough safety N/A N/A N/A master_service None N/A N/A services_load N/A master_service max_load N/A N/A N/A N/A reconfigure_reasons append Master overloaded N/A N/A N/A master_service None N/A N/A master_service storagerouter_guid N/A vdisk storagerouter_guid N/A N/A N/A N/A reconfigure_reasons append Master is not local N/A N/A any N/A service N/A service slave_services N/A N/A services_load N/A service max_load N/A N/A N/A N/A reconfigure_reasons append One or more slaves overloaded N/A recommended_primary N/A N/A secondary_failure_domain None N/A N/A math ceil N/A safety 2.0 safety N/A recommended_secondary N/A safety recommended_primary N/A N/A N/A master_service None N/A master_service N/A failure_domain_used_services_dict N/A primary_failure_domain N/A N/A N/A N/A reconfigure_reasons append Master service not in primary failure domain N/A primary_services_used N/A len N/A failure_domain_used_services_dict N/A primary_failure_domain N/A primary_services_available N/A len N/A failure_domain_available_services_dict N/A primary_failure_domain N/A N/A N/A primary_services_used recommended_primary N/A primary_services_used primary_services_available N/A N/A N/A N/A reconfigure_reasons append Not enough services in use in primary failure domain N/A N/A secondary_failure_domain None N/A N/A secondary_services_used N/A len N/A failure_domain_used_services_dict N/A secondary_failure_domain N/A secondary_services_available N/A len N/A failure_domain_available_services_dict N/A secondary_failure_domain N/A N/A N/A secondary_services_used recommended_secondary N/A secondary_services_used secondary_services_available N/A N/A N/A N/A reconfigure_reasons append Not enough services in use in secondary failure domain N/A secondary False N/A slave_service slave_services N/A N/A N/A N/A secondary True N/A slave_service N/A failure_domain_used_services_dict N/A primary_failure_domain N/A N/A N/A N/A reconfigure_reasons append A slave in secondary failure domain has priority over a slave in primary failure domain N/A N/A N/A slave_service N/A failure_domain_used_services_dict N/A secondary_failure_domain N/A N/A secondary True N/A N/A reconfigure_reasons N/A N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: No reconfiguration required format N/A vdisk guid N/A N/A N/A MDSServiceController sync_vdisk_to_reality vdisk N/A N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: Reconfiguration required. Reasons: format N/A vdisk guid N/A reason reconfigure_reasons N/A N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}:    * {1} format N/A vdisk guid reason N/A new_services N/A N/A master_ok N/A master_service None N/A N/A master_ok True N/A N/A master_ok N/A N/A N/A master_service storagerouter_guid N/A vdisk storagerouter_guid N/A N/A services_load N/A master_service max_load N/A master_ok N/A N/A N/A N/A new_services append master_service N/A N/A candidate_master_service None N/A candidate_master_load 0 N/A local_mds None N/A local_mds_load 0 N/A service N/A failure_domain_available_services_dict N/A primary_failure_domain N/A N/A load N/A services_load N/A service N/A N/A N/A load max_load N/A N/A service storagerouter_guid N/A vdisk storagerouter_guid N/A N/A N/A N/A local_mds None N/A local_mds_load load N/A N/A local_mds service N/A local_mds_load load N/A N/A service slave_services N/A N/A N/A N/A candidate_master_service None N/A candidate_master_load load N/A N/A candidate_master_service service N/A candidate_master_load load N/A N/A candidate_master_service None N/A N/A client N/A N/A MetadataServerClient load candidate_master_service N/A N/A N/A amount_of_tlogs N/A N/A client catch_up N/A str N/A vdisk volume_id True N/A N/A N/A RuntimeError N/A ex N/A N/A N/A Namespace does not exist N/A ex message N/A N/A N/A N/A client create_namespace N/A str N/A vdisk volume_id N/A amount_of_tlogs N/A N/A client catch_up N/A str N/A vdisk volume_id True N/A N/A N/A N/A amount_of_tlogs tlogs N/A N/A start N/A N/A time time N/A N/A N/A client catch_up N/A str N/A vdisk volume_id False N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: Catchup took {1}s format N/A vdisk guid N/A round N/A N/A N/A time time start 2 N/A N/A N/A new_services append candidate_master_service N/A N/A master_service None N/A N/A N/A N/A slave_services append master_service N/A N/A N/A master_service None N/A N/A N/A N/A new_services append master_service N/A N/A N/A new_services append candidate_master_service N/A N/A candidate_master_service slave_services N/A N/A N/A N/A slave_services remove candidate_master_service N/A N/A N/A master_service None N/A N/A N/A N/A new_services append master_service N/A N/A local_mds None N/A N/A N/A N/A new_services append local_mds N/A N/A local_mds slave_services N/A N/A N/A N/A slave_services remove local_mds N/A nodes N/A set N/A N/A N/A service storagerouter ip N/A service new_services N/A secondary_node_count 0 N/A service_to_recycle None N/A N/A N/A len nodes safety N/A N/A N/A recommended_primary 1 N/A N/A load N/A sorted N/A failure_domain_load_dict N/A primary_failure_domain N/A N/A service N/A N/A failure_domain_load_dict N/A primary_failure_domain N/A load N/A N/A N/A N/A service_to_recycle None N/A service slave_services N/A N/A N/A service storagerouter ip nodes N/A N/A N/A N/A N/A SSHClient N/A service storagerouter N/A service_to_recycle service N/A N/A N/A UnableToConnectException N/A N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: Skipping storagerouter with IP {1} as it is unreachable format N/A vdisk guid N/A N/A service storagerouter ip N/A N/A N/A service_to_recycle None N/A secondary_failure_domain None N/A N/A load N/A sorted N/A failure_domain_load_dict N/A secondary_failure_domain N/A N/A service N/A N/A failure_domain_load_dict N/A secondary_failure_domain N/A load N/A N/A N/A N/A service_to_recycle None N/A service slave_services N/A N/A N/A service storagerouter ip nodes N/A N/A N/A N/A N/A SSHClient N/A service storagerouter N/A service_to_recycle service N/A secondary_node_count 1 N/A N/A N/A UnableToConnectException N/A N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: Skipping storagerouter with IP {1} as it is unreachable format N/A vdisk guid N/A N/A service storagerouter ip N/A N/A service_to_recycle None N/A N/A N/A N/A slave_services remove service_to_recycle N/A N/A secondary_node_count 0 N/A N/A N/A N/A new_services append service_to_recycle N/A N/A N/A nodes add N/A N/A service_to_recycle storagerouter ip N/A N/A nodes new_services N/A _add_suitable_nodes local_failure_domain primary_failure_domain local_safety recommended_primary N/A N/A secondary_node_count 1 N/A N/A N/A N/A new_services append service_to_recycle N/A N/A N/A nodes add N/A N/A service_to_recycle storagerouter ip N/A N/A secondary_failure_domain None N/A N/A N/A nodes new_services N/A _add_suitable_nodes local_failure_domain secondary_failure_domain local_safety safety N/A N/A N/A len nodes safety N/A N/A N/A nodes new_services N/A _add_suitable_nodes local_failure_domain primary_failure_domain local_safety safety N/A configs N/A N/A service new_services N/A N/A client N/A N/A MetadataServerClient load service N/A N/A N/A client create_namespace N/A str N/A vdisk volume_id N/A N/A N/A configs append N/A MDSNodeConfig address N/A str N/A N/A service storagerouter ip port N/A N/A service ports N/A 0 N/A N/A N/A N/A vdisk storagedriver_client update_metadata_backend_config volume_id N/A str N/A vdisk volume_id metadata_backend_config N/A MDSMetaDataBackendConfig configs N/A N/A N/A MDSServiceController sync_vdisk_to_reality vdisk N/A N/A N/A logger debug N/A N/A MDS safety: vDisk {0}: Completed format N/A vdisk guid N/A staticmethod get_preferred_mds N/A N/A storagerouter vpool N/A N/A N/A 
        Gets the MDS on this StorageRouter/VPool pair which is preferred to achieve optimal balancing
        :param storagerouter: Storagerouter to retrieve the best MDS service for
        :type storagerouter: StorageRouter

        :param vpool: vPool to retrieve the best MDS service for
        :type vpool: VPool

        :return: Preferred MDS service (least loaded), current load on that MDS service
        :rtype: tuple
         N/A mds_service N/A None N/A float inf N/A current_mds_service N/A vpool mds_services N/A N/A N/A N/A N/A current_mds_service service storagerouter_guid N/A storagerouter guid N/A N/A load N/A N/A N/A MDSServiceController get_mds_load current_mds_service N/A 0 N/A N/A N/A mds_service None N/A load N/A mds_service N/A 1 N/A N/A mds_service N/A current_mds_service load N/A mds_service N/A staticmethod get_mds_load N/A N/A mds_service N/A N/A N/A 
        Gets a 'load' for an MDS service based on its capacity and the amount of assigned VDisks
        :param mds_service: MDS service the get current load for
        :type mds_service: MDSService

        :return: Load of the MDS service
        :rtype: tuple
         N/A service_capacity N/A float N/A mds_service capacity N/A N/A service_capacity 0 N/A N/A N/A 50 50 N/A N/A service_capacity 0 N/A N/A N/A N/A float inf N/A float inf N/A usage N/A len N/A mds_service vdisks_guids N/A N/A N/A round N/A N/A usage service_capacity 100.0 5 N/A round N/A N/A N/A usage 1 service_capacity 100.0 5 N/A staticmethod get_mds_storagedriver_config_set N/A N/A vpool check_online N/A False N/A N/A 
        Builds a configuration for all StorageRouters from a given VPool with following goals:
        * Primary MDS is the local one
        * All slaves are on different hosts
        * Maximum `mds.safety` nodes are returned
        The configuration returned is the default configuration used by the volumedriver of which in normal use-cases
        only the 1st entry is used, because at volume creation time, the volumedriver needs to create 1 master MDS
        During ensure_safety, we actually create/set the MDS slaves for each volume

        :param vpool: vPool to get storagedriver configuration for
        :type vpool: VPool

        :param check_online: Check whether the storage routers are actually responsive
        :type check_online: bool

        :return: MDS configuration for a vPool
        :rtype: dict
         N/A mds_per_storagerouter N/A N/A mds_per_load N/A N/A storagedriver N/A vpool storagedrivers N/A N/A storagerouter N/A storagedriver storagerouter N/A N/A check_online True N/A N/A N/A N/A client N/A SSHClient storagerouter N/A N/A N/A client run pwd N/A N/A N/A UnableToConnectException N/A N/A N/A N/A mds_service load N/A N/A MDSServiceController get_preferred_mds storagerouter vpool N/A N/A mds_service None N/A N/A N/A RuntimeError Could not find an MDS service N/A N/A mds_per_storagerouter N/A storagerouter N/A host port N/A storagerouter ip N/A N/A N/A mds_service service ports N/A 0 N/A N/A load mds_per_load N/A N/A N/A mds_per_load N/A load N/A N/A N/A N/A N/A mds_per_load N/A load append storagerouter N/A safety N/A N/A EtcdConfiguration get /ovs/framework/storagedriver|mds_safety N/A config_set N/A N/A N/A storagerouter ip_info N/A N/A mds_per_storagerouter iteritems N/A N/A primary_failure_domain N/A storagerouter primary_failure_domain N/A secondary_failure_domain N/A storagerouter secondary_failure_domain N/A N/A config_set N/A N/A storagerouter guid N/A ip_info N/A load N/A sorted mds_per_load N/A N/A N/A N/A len N/A config_set N/A N/A storagerouter guid safety N/A N/A N/A other_storagerouters N/A mds_per_load N/A load N/A N/A N/A random shuffle other_storagerouters N/A other_storagerouter other_storagerouters N/A N/A N/A N/A len N/A config_set N/A N/A storagerouter guid safety N/A N/A N/A N/A N/A other_storagerouter storagerouter N/A other_storagerouter N/A primary_failure_domain primary_storagerouters N/A N/A N/A N/A N/A config_set N/A N/A storagerouter guid append N/A mds_per_storagerouter N/A other_storagerouter N/A N/A secondary_failure_domain None N/A N/A load N/A sorted mds_per_load N/A N/A N/A N/A len N/A config_set N/A N/A storagerouter guid safety N/A N/A N/A other_storagerouters N/A mds_per_load N/A load N/A N/A N/A random shuffle other_storagerouters N/A other_storagerouter other_storagerouters N/A N/A N/A N/A len N/A config_set N/A N/A storagerouter guid safety N/A N/A N/A N/A N/A other_storagerouter storagerouter N/A other_storagerouter N/A secondary_failure_domain primary_storagerouters N/A N/A N/A N/A N/A config_set N/A N/A storagerouter guid append N/A mds_per_storagerouter N/A other_storagerouter N/A config_set N/A staticmethod mds_checkup N/A N/A N/A N/A N/A 
        Validates the current MDS setup/configuration and takes actions where required
         N/A N/A N/A logger info MDS checkup - Started N/A mds_dict N/A N/A vpool N/A N/A VPoolList get_vpools N/A N/A N/A N/A logger info N/A N/A MDS checkup - vPool {0} format N/A vpool name N/A N/A mds_dict N/A vpool N/A N/A mds_service N/A vpool mds_services N/A N/A storagerouter N/A N/A mds_service service storagerouter N/A N/A storagerouter N/A mds_dict N/A vpool N/A N/A N/A N/A mds_dict N/A vpool N/A storagerouter N/A client services None N/A N/A N/A N/A client N/A SSHClient storagerouter username root N/A N/A N/A client run pwd N/A N/A N/A N/A mds_dict N/A vpool N/A storagerouter N/A client client N/A N/A N/A logger info N/A N/A MDS checkup - vPool {0} - Storage Router {1} - ONLINE format N/A vpool name N/A storagerouter name N/A N/A N/A UnableToConnectException N/A N/A N/A N/A logger info N/A N/A MDS checkup - vPool {0} - Storage Router {1} - OFFLINE format N/A vpool name N/A storagerouter name N/A N/A N/A N/A N/A N/A mds_dict N/A vpool N/A storagerouter N/A services append mds_service N/A failures N/A N/A max_load N/A N/A EtcdConfiguration get /ovs/framework/storagedriver|mds_maxload N/A N/A vpool storagerouter_info N/A N/A mds_dict iteritems N/A N/A storagerouter storagerouter_info N/A N/A client N/A N/A N/A mds_dict N/A vpool N/A storagerouter N/A client N/A mds_services N/A N/A N/A mds_dict N/A vpool N/A storagerouter N/A services N/A has_room False N/A mds_service N/A mds_services N/A N/A N/A N/A N/A N/A mds_service capacity 0 N/A N/A len N/A mds_service vdisks_guids 0 N/A N/A N/A N/A logger info N/A N/A MDS checkup - Removing mds_service {0} for vPool {1} format N/A mds_service number N/A vpool name N/A N/A N/A MDSServiceController remove_mds_service mds_service vpool reconfigure True allow_offline N/A client None N/A N/A N/A mds_services remove mds_service N/A mds_service mds_services N/A N/A N/A _ load N/A N/A MDSServiceController get_mds_load mds_service N/A N/A load max_load N/A N/A has_room True N/A N/A N/A N/A logger info N/A N/A MDS checkup - vPool {0} - Storage Router {1} - Capacity available: {2} format N/A vpool name N/A storagerouter name has_room N/A N/A N/A has_room False N/A client None N/A N/A mds_service N/A N/A MDSServiceController prepare_mds_service storagerouter storagerouter vpool vpool fresh_only False reload_config True N/A N/A mds_service None N/A N/A N/A RuntimeError Could not add MDS node N/A N/A N/A mds_services append mds_service N/A mds_config_set N/A N/A MDSServiceController get_mds_storagedriver_config_set vpool True N/A storagerouter storagerouter_info N/A N/A client N/A N/A N/A mds_dict N/A vpool N/A storagerouter N/A client N/A N/A client None N/A N/A N/A N/A logger info N/A N/A MDS checkup - vPool {0} - Storage Router {1} - Marked as offline, not setting default MDS configuration format N/A vpool name N/A storagerouter name N/A N/A storagedriver N/A N/A sd N/A sd N/A storagerouter storagedrivers N/A N/A sd vpool_guid N/A vpool guid N/A 0 N/A storagedriver_config N/A StorageDriverConfiguration storagedriver N/A vpool guid N/A storagedriver storagedriver_id N/A N/A N/A storagedriver_config load N/A N/A N/A storagedriver_config is_new False N/A N/A N/A N/A logger info N/A N/A MDS checkup - vPool {0} - Storage Router {1} - Storing default MDS configuration: {2} format N/A vpool name N/A storagerouter name N/A mds_config_set N/A N/A storagerouter guid N/A N/A N/A storagedriver_config clean N/A N/A N/A storagedriver_config configure_filesystem fs_metadata_backend_mds_nodes N/A mds_config_set N/A N/A storagerouter guid N/A N/A N/A storagedriver_config save client N/A N/A N/A logger info N/A N/A MDS checkup - vPool {0} - Ensuring safety for all virtual disks format N/A vpool name N/A vdisk N/A vpool vdisks N/A N/A N/A N/A N/A N/A MDSServiceController ensure_safety vdisk N/A N/A N/A Exception N/A ex N/A N/A N/A N/A failures append N/A N/A Ensure safety for vDisk {0} with guid {1} failed with error: {2} format N/A vdisk name N/A vdisk guid ex N/A N/A N/A len failures 0 N/A N/A N/A Exception N/A 
 -  N/A N/A 
 -  join failures N/A N/A N/A logger info MDS checkup - Finished N/A staticmethod N/A N/A celery task name ovs.mds.mds_checkup schedule N/A crontab minute 30 hour 0,4,8,12,16,20 N/A ensure_single task_name ovs.mds.mds_checkup mode CHAINED N/A N/A N/A __name__ __main__ N/A ovs.dal.lists.storagerouterlist StorageRouterList N/A N/A N/A True N/A N/A output N/A Open vStorage - MDS debug information ===================================== N/A N/A timestamp: {0} format N/A N/A time time N/A _sr N/A N/A StorageRouterList get_storagerouters N/A N/A N/A N/A output append N/A N/A + {0} ({1}) format N/A _sr name N/A _sr ip N/A vpools N/A set N/A N/A sd vpool N/A sd N/A _sr storagedrivers N/A _vpool vpools N/A N/A N/A N/A output append N/A N/A   + {0} format N/A _vpool name N/A _mds_service N/A _vpool mds_services N/A N/A N/A N/A N/A _mds_service service storagerouter_guid N/A _sr guid N/A N/A N/A masters slaves N/A 0 0 N/A _junction N/A _mds_service vdisks N/A N/A N/A _junction is_master N/A N/A masters 1 N/A N/A slaves 1 N/A capacity N/A _mds_service capacity N/A N/A capacity -1 N/A N/A capacity infinite N/A N/A _load _ N/A N/A MDSServiceController get_mds_load _mds_service N/A N/A _load N/A float inf N/A N/A _load infinite N/A N/A _load N/A N/A {0}% format N/A round _load 2 N/A N/A N/A output append N/A N/A     + {0} - port {1} - {2} master(s), {3} slave(s) - capacity: {4}, load: {5} format N/A _mds_service number N/A N/A N/A _mds_service service ports N/A 0 masters slaves capacity _load N/A output N/A Press ^C to exit N/A N/A [2J[H N/A N/A join output N/A N/A N/A time sleep 1 N/A N/A N/A KeyboardInterrupt N/A N/A