thehyve/puppet-i2b2

View on GitHub
manifests/params.pp

Summary

Maintainability
Test Coverage
class i2b2::params(
  $intermediate_dir = '/opt/i2b2_intermediate',
  $version = '1704',
  $ant_target_version = '1-7',

  $user = 'i2b2',
  $manage_user = false,

  $manage_packages = true,

  $webroot_dir = '/opt/i2b2_webroot',
  $axis_version = '1.6.2',
  $exploded_war_dir = '/opt/i2b2',
  $axis_admin_password,

  $context = 'i2b2',
  $local_base_url = 'http://localhost:8080',
  $external_hostname = $::fqdn, # right now for the webserver vhost only (webclient)
  $external_base_url_tomcat = "http://${::fqdn}:8080",

  # connection details for the database; does not have to be local
  $database_type, # e.g. postgresql
  $database_driver, # e.g. org.postgresql.Driver
  $database_name = 'i2b2',
  $database_host = 'localhost',
  $database_jdbc_url, # e.g. jdbc:postgresql://localhost/i2b2; must be consistent with database_{name, host}
  $database_jdbc_jar_url, # e.g. 'http://jdbc.postgresql.org/download/postgresql-9.3-1102.jdbc41.jar',
  $database_system_user, # e.g. postgres

  $service_user = 'AGG_SERVICE_ACCOUNT',
  $service_user_password,
  $default_admin_password, # user is always i2b2

  # general hive data
  # only one domain can be managed
  $hive_domain_id = 'i2b2',
  $hive_help_url = 'http://www.i2b2.org',
  $hive_domain_name = 'i2b2default',
  $hive_environment = 'PRODUCTION',

  # db users and password
  $pm_db_user = 'i2b2pm',
  $pm_db_password = 'i2b2pm',

  $hive_db_user = 'i2b2hive',
  $hive_db_password = 'i2b2hive',

  # If defined, when a cell is declared, do not attempt to register it.
  # Instead, export a resource with this tag.
  $export_cell_registrations_tag = '',

  # pool settings
  $default_pool_settings = {
    max_conn      => 30,
    min_idle_conn => 2,
    max_idle_conn => 6,
  },
  $pool_settings = {}, # like default_pool_settings

  # logging
  $log_dir,
  $root_logging_level = 'DEBUG',

  $container_data_source_implementation = '', # e.g. i2b2::profile::tomcat::container_data_source

  # local db only
  $database_user_implementation = '', # e.g. 'i2b2::profile::postgresql::database_user'
  $database_cell_detect_implementation = '', # e.g. 'i2b2::profile::postgresql::no_cell_data_detect'

  # specified like this [ { local => true, filename => 'test_local' }, { local =>false, filename => 'http://testremote.com/remote.css' } ]
  $additional_css_sheets = [],

  $admin_proxy_prefixes = '',     # array, '' for default
  $webclient_proxy_prefixes = '', # array, '' for default
) {
  $local_url = "$local_base_url/$context"
  $external_url = "$external_base_url_tomcat/$context"

  $default_domains =
  [
    {
      domain        => $hive_domain_name,
      name          => "Hive $hive_domain_name",
      urlCellPM     => "$external_url/services/PMService/",
      allowAnalysis => true,
      debug         => true,
    },
  ]
  $webclient_domains = hiera('i2b2::params::webclient_domains', $default_domains)
  $webclient_dir = "$webroot_dir/webclient"

  $admin_domains = hiera('i2b2::params::admin_domains', $default_domains)
  $admin_dir = "$webroot_dir/admin"

  if $manage_packages {
    if $::osfamily == 'debian' {
      $bsdtar_package = 'bsdtar'
      $java_package = 'openjdk-7-jdk'
      $ant_package = 'ant'
      if versioncmp($::puppetversion, '4') < 0 {
        $gems_deps_packages = ['libpq-dev', 'ruby-dev']
      } else {
        # Puppet 4 has private OpenSSL copy, which is is incompatible with
        # distro's libpq.  libpq needs to be compiled against that private
        # copy or without OpenSSL support
        $gems_deps_packages = []
      }
      $php_curl_package = 'php5-curl'
      $ssl_key_group = 'ssl-cert'
    }
  }
}