Hi Daniil! Don't worry, your patch is already in branch 2.15 (as your email was suggesting): http://git.ganeti.org/?p=ganeti.git;a=commit;h=9d9ccdd66c6d6d725dc6195c47e65f3659c568d0 Maybe later this week we will merge it upwards to 2.18.
Viktor On Monday, April 4, 2016 at 11:45:04 AM UTC+1, Даниил Лещёв wrote: > > Hi, Viktor! > > I actually don't want to be annoying, but I still can't see my patch at > git.ganeti.org. > It's very important for me, because I want to take part in GSoC 2016. > Hope, I don't take much of your time. > > LGTM. Thanks! I will push this patch later today. >> >> On Tuesday, March 29, 2016 at 5:50:58 PM UTC+1, Даниил Лещёв wrote: >>> >>> From: Daniil Leshchev <[email protected]> >>> >>> In accordance with issue #475: >>> Implement extraction of 'networks' field in Rapi and Luxi backends. >>> Add 'networks' field into Group query object. >>> >>> Signed-off-by: Daniil Leshchev <[email protected]> >>> --- >>> lib/query.py | 3 +++ >>> src/Ganeti/HTools/Backend/Luxi.hs | 8 ++++---- >>> src/Ganeti/HTools/Backend/Rapi.hs | 5 +++-- >>> src/Ganeti/Query/Group.hs | 2 ++ >>> 4 files changed, 12 insertions(+), 6 deletions(-) >>> >>> diff --git a/lib/query.py b/lib/query.py >>> index 43d8fad..222c14f 100644 >>> --- a/lib/query.py >>> +++ b/lib/query.py >>> @@ -2448,6 +2448,9 @@ def _BuildGroupFields(): >>> (_MakeField("ipolicy", "InstancePolicy", QFT_OTHER, >>> "Instance policy limitations (merged)"), >>> GQ_CONFIG, 0, lambda ctx, _: ctx.group_ipolicy), >>> + (_MakeField("networks", "Networks", QFT_OTHER, >>> + "Node group networks"), >>> + GQ_CONFIG, 0, _GetItemAttr("networks")), >>> (_MakeField("custom_ipolicy", "CustomInstancePolicy", QFT_OTHER, >>> "Custom instance policy limitations"), >>> GQ_CONFIG, 0, _GetItemAttr("ipolicy")), >>> diff --git a/src/Ganeti/HTools/Backend/Luxi.hs >>> b/src/Ganeti/HTools/Backend/Luxi.hs >>> index 5a3cb1d..2ac71e6 100644 >>> --- a/src/Ganeti/HTools/Backend/Luxi.hs >>> +++ b/src/Ganeti/HTools/Backend/Luxi.hs >>> @@ -149,7 +149,7 @@ queryClusterInfoMsg = L.QueryClusterInfo >>> queryGroupsMsg :: L.LuxiOp >>> queryGroupsMsg = >>> L.Query (Qlang.ItemTypeOpCode Qlang.QRGroup) >>> - ["uuid", "name", "alloc_policy", "ipolicy", "tags"] >>> + ["uuid", "name", "alloc_policy", "ipolicy", "tags", "networks"] >>> Qlang.EmptyFilter >>> >>> -- | Wraper over 'callMethod' doing node query. >>> @@ -276,15 +276,15 @@ getGroups jsv = extractArray jsv >>= mapM >>> parseGroup >>> >>> -- | Parses a given group information. >>> parseGroup :: [(JSValue, JSValue)] -> Result (String, Group.Group) >>> -parseGroup [uuid, name, apol, ipol, tags] = do >>> +parseGroup [uuid, name, apol, ipol, tags, nets] = do >>> xname <- annotateResult "Parsing new group" (fromJValWithStatus name) >>> let convert a = genericConvert "Group" xname a >>> xuuid <- convert "uuid" uuid >>> xapol <- convert "alloc_policy" apol >>> xipol <- convert "ipolicy" ipol >>> xtags <- convert "tags" tags >>> - -- TODO: parse networks to which this group is connected >>> - return (xuuid, Group.create xname xuuid xapol [] xipol xtags) >>> + xnets <- convert "networks" nets >>> + return (xuuid, Group.create xname xuuid xapol xnets xipol xtags) >>> >>> parseGroup v = fail ("Invalid group query result: " ++ show v) >>> >>> diff --git a/src/Ganeti/HTools/Backend/Rapi.hs >>> b/src/Ganeti/HTools/Backend/Rapi.hs >>> index df93d6a..ce1bb10 100644 >>> --- a/src/Ganeti/HTools/Backend/Rapi.hs >>> +++ b/src/Ganeti/HTools/Backend/Rapi.hs >>> @@ -196,12 +196,13 @@ parseGroup :: JSRecord -> Result (String, >>> Group.Group) >>> parseGroup a = do >>> name <- tryFromObj "Parsing new group" a "name" >>> let extract s = tryFromObj ("Group '" ++ name ++ "'") a s >>> + let extractDef s d = fromObjWithDefault a s d >>> uuid <- extract "uuid" >>> apol <- extract "alloc_policy" >>> ipol <- extract "ipolicy" >>> tags <- extract "tags" >>> - -- TODO: parse networks to which this group is connected >>> - return (uuid, Group.create name uuid apol [] ipol tags) >>> + nets <- extractDef "networks" [] >>> + return (uuid, Group.create name uuid apol nets ipol tags) >>> >>> -- | Parse cluster data from the info resource. >>> parseCluster :: JSObject JSValue -> Result ([String], IPolicy, String) >>> diff --git a/src/Ganeti/Query/Group.hs b/src/Ganeti/Query/Group.hs >>> index 45bd81a..4989788 100644 >>> --- a/src/Ganeti/Query/Group.hs >>> +++ b/src/Ganeti/Query/Group.hs >>> @@ -55,6 +55,8 @@ groupFields = >>> , (FieldDefinition "custom_ipolicy" "CustomInstancePolicy" QFTOther >>> "Custom instance policy limitations", >>> FieldSimple (rsNormal . groupIpolicy), QffNormal) >>> + , (FieldDefinition "networks" "Networks" QFTOther "Node group >>> networks", >>> + FieldSimple (rsNormal . groupNetworks), QffNormal) >>> , (FieldDefinition "custom_ndparams" "CustomNDParams" QFTOther >>> "Custom node parameters", >>> FieldSimple (rsNormal . groupNdparams), QffNormal) >>> -- >>> 1.9.1 >>> >>>
