Report abuse


			
######################################
# define some classes

class apache {
        apache_setup { "config" : }
}

define apache_setup (
        $chroot = true,
        $ssl = false
) {
        # sanity checking, platform-specific defaults
        $_chroot = $chroot
        $_ssl = $ssl

        class apache_config {
                $ssl = $_ssl
                $chroot = $_chroot
                # more variables here
        }
        include apache_config
        # actuall apache setup goes here
}

class trac {
        case $apache_config::chroot {
        true: {
                notice("chroot = true")
                # do something
        }
        default: {
                # do something else
                notice("chroot = ${apache_config::chroot}")
        }
        }
}


######################################
# Now use what we've set up

class apache_ssl inherits apache {
        # override the defaults
        Apache_setup["config"] {
                ssl => true,
                chroot => false
        }
}

include apache_ssl
include trac