Menu

Shinken Poller Prepare

Download Modules Prepare shinken-poller-executor docker image

module.exports = header: 'Shinken Poller Prepare', handler: (options) ->
  return unless options.prepare

Modules

  @call header: 'Modules', ->
    installmod = (name, mod) =>
      @file.cache
        source: mod.source
        cache_file: "#{mod.archive}.#{mod.format}"
      for subname, submod of mod.modules then installmod subname, submod
    for name, mod of options.modules then installmod name, mod

Python Modules

  @call header: 'Python Modules', ->
    for _, mod of options.modules then for k,v of mod.python_modules
      @file.cache
          source: v.url
          cache_file: "#{v.archive}.#{v.format}"

Build Container

  @file.render
    header: 'Render Dockerfile'
    target: "#{options.cache_dir or '.'}/build/Dockerfile"
    source: "#{__dirname}/resources/Dockerfile.j2"
    local: true
    context: options
  @file
    header: 'Write Java Profile'
    target: "#{options.cache_dir or '.'}/build/java.sh"
    content: """
    export JAVA_HOME=/usr/java/default
    export PATH=/usr/java/default/bin:$PATH
    """
  @file
    header: 'Write RSA Private Key'
    target: "#{options.cache_dir or '.'}/build/id_rsa"
    content: options.private_key
  @file
    header: 'Write RSA Public Key'
    target: "#{options.cache_dir or '.'}/build/id_rsa.pub"
    content: options.public_key
  @docker.build
    header: 'Build Container'
    image: 'ryba/shinken-poller-executor'
    file: "#{options.cache_dir or '.'}/build/Dockerfile"
    cwd: options.build_dir

Save image

  @docker.save
    header: 'Save Container'
    image: 'ryba/shinken-poller-executor'
    target: "#{options.cache_dir or '.'}/shinken-poller-executor.tar"