ganeti

Safe HaskellSafe-Infered

Ganeti.Network

Contents

Description

Implementation of the Ganeti network objects.

This is does not (yet) cover all methods that are provided in the corresponding python implementation (network.py).

Synopsis

Documentation

ipv4NumHosts :: Integral n => n -> IntegerSource

newPoolArray :: (MonadError e m, FromString e) => Network -> m BitArraySource

newPool :: (MonadError e m, FromString e) => Network -> m AddressPoolSource

orNewPool :: (MonadError e m, FromString e) => Network -> Maybe AddressPool -> m AddressPoolSource

withPool :: (MonadError e m, FromString e) => PoolPart -> (Network -> BitArray -> m (a, BitArray)) -> StateT Network m aSource

withPool_ :: (MonadError e m, FromString e) => PoolPart -> (Network -> BitArray -> m BitArray) -> Network -> m NetworkSource

readPoolE :: (MonadError e m, FromString e) => PoolPart -> Network -> m BitArraySource

readAllE :: (MonadError e m, FromString e) => Network -> m BitArraySource

allReservations :: Network -> Maybe BitArraySource

Get a bit vector of all reservations (internal and external) combined.

getReservedCount :: Network -> IntSource

Get the count of reserved addresses.

getFreeCount :: Network -> IntSource

Get the count of free addresses.

isFull :: Network -> BoolSource

Check whether the network is full.

getMap :: Network -> StringSource

Return a textual representation of the network's occupation status.

Functions used for manipulating the reservations

addrIndex :: (MonadError e m, FromString e) => Ip4Address -> Network -> m IntSource

addrAt :: (MonadError e m, FromString e) => Int -> Network -> m Ip4AddressSource

isReserved :: (MonadError e m, FromString e) => PoolPart -> Ip4Address -> Network -> m BoolSource

Checks if a given address is reserved. Fails if the address isn't in the network range.

reserve :: (MonadError e m, FromString e) => PoolPart -> Ip4Address -> Network -> m NetworkSource

Marks an address as used.

release :: (MonadError e m, FromString e) => PoolPart -> Ip4Address -> Network -> m NetworkSource

Marks an address as unused.

findFree :: (MonadError e m, FromString e) => (Ip4Address -> Bool) -> Network -> m (Maybe Ip4Address)Source

Get the first free address in the network that satisfies a given predicate.