language-puppet-0.10.3: Tools to parse and evaluate the Puppet DSL.

Safe HaskellNone

Puppet.Interpreter

Synopsis

Documentation

vmapM :: (Monad m, Foldable t) => (a -> m b) -> t a -> m [b]

getCatalog

Arguments

:: (TopLevelType -> Text -> IO (Either Doc Statement))

get statements function

-> (Either Text Text -> Text -> Container ScopeInformation -> IO (Either Doc Text))

compute template function

-> PuppetDBAPI 
-> Text

Node name

-> Facts

Facts ...

-> Container PuppetTypeMethods

List of native types

-> Container ([PValue] -> InterpreterMonad PValue) 
-> HieraQueryFunc

Hiera query function

-> IO (Pair (Either Doc (FinalCatalog, EdgeMap, FinalCatalog)) [Pair Priority Doc]) 

fromArgumentList :: [Pair Text a] -> InterpreterMonad (Container a)

Converts a list of pairs into a container, checking there is no duplicate

loadParameters :: Foldable f => Container PValue -> f (Pair Text (Maybe Expression)) -> PPosition -> Maybe Text -> InterpreterMonad ()

This function loads class and define parameters into scope. It checks that all mandatory parameters are set, that no extra parameter is declared.

It is able to fill unset parameters with values from Hiera (for classes only) or default values.

enterScope :: Maybe Text -> CurContainerDesc -> InterpreterMonad Text

Enters a new scope, checks it is not already defined, and inherits the defaults from the current scope

Inheriting the defaults is necessary for non native types, because they will be expanded in finalize, so if this was not done, we would be expanding the defines without the defaults applied