LGTM, thanks

On Fri, May 23, 2014 at 10:36 AM, Dimitris Aragiorgis <[email protected]>wrote:

> QueryNetworks tries to find which instances are connected to which
> networks. The query mechanism in Haskell was written back when NICs
> referred to a network via its name and not its UUID. Fix luxi to
> comply with the current implementation (network slot of NIC object
> is a UUID).
>
> Fix old style query mechanism to return a list of names instead of
> UUIDs for the instances that are connected to a network.
>
> Signed-off-by: Dimitris Aragiorgis <[email protected]>
> ---
>  lib/cmdlib/network.py                |    2 +-
>  src/Ganeti/Query/Network.hs          |    9 ++++-----
>  test/hs/Test/Ganeti/Objects.hs       |    2 +-
>  test/hs/Test/Ganeti/Query/Network.hs |   11 ++++-------
>  4 files changed, 10 insertions(+), 14 deletions(-)
>
> diff --git a/lib/cmdlib/network.py b/lib/cmdlib/network.py
> index 8bfd0b4..5dc8771 100644
> --- a/lib/cmdlib/network.py
> +++ b/lib/cmdlib/network.py
> @@ -465,7 +465,7 @@ class NetworkQuery(QueryBase):
>        for instance in all_instances.values():
>          for nic in instance.nics:
>            if nic.network in network_uuids:
> -            network_to_instances[nic.network].append(instance.uuid)
> +            network_to_instances[nic.network].append(instance.name)
>              break
>
>      if query.NETQ_STATS in self.requested_data:
> diff --git a/src/Ganeti/Query/Network.hs b/src/Ganeti/Query/Network.hs
> index b7487f4..edbb3b5 100644
> --- a/src/Ganeti/Query/Network.hs
> +++ b/src/Ganeti/Query/Network.hs
> @@ -137,14 +137,13 @@ getNicLink nic_params = fromMaybe "-" (nicpLinkP
> nic_params)
>  -- | Retrieves the network's instances' names.
>  getInstances :: ConfigData -> String -> [String]
>  getInstances cfg network_uuid =
> -  map instName (filter (instIsConnected cfg network_uuid)
> +  map instName (filter (instIsConnected network_uuid)
>      ((Map.elems . fromContainer . configInstances) cfg))
>
>  -- | Helper function that checks if an instance is linked to the given
> network.
> -instIsConnected :: ConfigData -> String -> Instance -> Bool
> -instIsConnected cfg network_uuid inst =
> -  network_uuid `elem` mapMaybe (getNetworkUuid cfg)
> -    (mapMaybe nicNetwork (instNics inst))
> +instIsConnected :: String -> Instance -> Bool
> +instIsConnected network_uuid inst =
> +  network_uuid `elem` mapMaybe nicNetwork (instNics inst)
>
>  -- | Helper function to look up a network's UUID by its name
>  getNetworkUuid :: ConfigData -> String -> Maybe String
> diff --git a/test/hs/Test/Ganeti/Objects.hs
> b/test/hs/Test/Ganeti/Objects.hs
> index 05f2f44..a5498ca 100644
> --- a/test/hs/Test/Ganeti/Objects.hs
> +++ b/test/hs/Test/Ganeti/Objects.hs
> @@ -166,7 +166,7 @@ enhanceInstWithNets inst nets = do
>    uuid <- arbitrary
>    -- generate some more networks than the given ones
>    num_more_nets <- choose (0,3)
> -  more_nets <- vectorOf num_more_nets genName
> +  more_nets <- vectorOf num_more_nets genUUID
>    let genNic net = PartialNic mac ip nicparams net name uuid
>        partial_nics = map (genNic . Just)
>                           (List.nub (nets ++ more_nets))
> diff --git a/test/hs/Test/Ganeti/Query/Network.hs
> b/test/hs/Test/Ganeti/Query/Network.hs
> index 64efa28..de6008a 100644
> --- a/test/hs/Test/Ganeti/Query/Network.hs
> +++ b/test/hs/Test/Ganeti/Query/Network.hs
> @@ -33,7 +33,6 @@ module Test.Ganeti.Query.Network
>  import Ganeti.JSON
>  import Ganeti.Objects
>  import Ganeti.Query.Network
> -import Ganeti.Types
>
>  import Test.Ganeti.Objects
>  import Test.Ganeti.TestCommon
> @@ -67,9 +66,8 @@ prop_instIsConnected :: ConfigData -> Property
>  prop_instIsConnected cfg =
>    let nets = (fromContainer . configNetworks) cfg
>        net_keys = Map.keys nets
> -      net_names = map (fromNonEmpty . networkName) (Map.elems nets)
> -  in  forAll (genInstWithNets net_names) $ \inst ->
> -      True ==? all (\nk -> instIsConnected cfg nk inst) net_keys
> +  in  forAll (genInstWithNets net_keys) $ \inst ->
> +      True ==? all (`instIsConnected` inst) net_keys
>
>  -- | Tests whether instances that are not connected to a network are
>  -- correctly classified as such.
> @@ -77,10 +75,9 @@ prop_instIsConnected_notFound :: ConfigData -> String
> -> Property
>  prop_instIsConnected_notFound cfg network_uuid =
>    let nets = (fromContainer . configNetworks) cfg
>        net_keys = Map.keys nets
> -      net_names = map (fromNonEmpty . networkName) (Map.elems nets)
>    in  notElem network_uuid net_keys ==>
> -      forAll (genInstWithNets net_names) $ \inst ->
> -        not (instIsConnected cfg network_uuid inst)
> +      forAll (genInstWithNets net_keys) $ \inst ->
> +        not (instIsConnected network_uuid inst)
>
>  testSuite "Query_Network"
>    [ 'prop_getGroupConnection
> --
> 1.7.10.4
>
>


-- 
-- 
Helga Velroyen | Software Engineer | [email protected] |

Google Germany GmbH
Dienerstr. 12
80331 München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Graham Law, Christine Elizabeth Flores

Reply via email to