From a quick glance, it seems like you are trying to reassign a variable value - that is not allowed in puppet. You may assign to a variable that exists in an outer scope (thereby shadowing it), but not reassign in the same scope.

As an example:
  case $semisync_master {
    on: {
      $semisync_master = ...
    }
    off: {
      $semisync_master = ...
  }
}

will not work because $semisync_master is a parameter with a bound value.

Use different variable names in your logic and template, or pass on different values to a second define.

You will probably find the selector expression easier to use in cases like this. i.e.

$semisync = $semisync_master ? {
  'on' => 'value when on',
  'off' => 'value when off',
}

Regards
- henrik

On 2012-05-10 15:23, Douglas Brancaglion wrote:
Hi guys!

I have a problem in a custom resource type, because the idea is that I
had to put in the manifest options "on or off" as an example below, but
these rules are not working case. any idea what it is?

define mysql ( $server_id, $relay_log_index, $performance_schema,
$rpl_semi_sync_master_enabled, $rpl_semi_sync_master_timeout,
$rpl_semi_sync_slave_enabled, $semisync_master, $semisync_slave,
$mod_opr, $read_only, $expire_logs_days, $max_binlog_size,
$binlog_format, $query_cache_limit, $query_cache_size, $server_id,
$innodb_file_per_table, $innodb_buffer_pool_size, $innodb_open_files,
$key_buffer_size, $tmp_table_size, $max_heap_table_size,
$table_open_cache, $max_connections, $thread_cache_size ) {

file { "/etc/my.cnf":
ensure=> present,
owner=> root,
group=> root,
mode=> 0640,
notify=> Service["mysql"],
source=> template("global/mysql/my.cnf.erb"),
}

file { "/var/log/mysql":
ensure=> directory,
owner=> mysql,
group=> mysql,
mode=> 0750,
}
case $read_only {

on: { $readonly = "red_only=1" }

off: { $readonly = "red_only=0" }
}

         case $relay_log_index {

         on: {
                 $relay_log_index =
"relay_log_index=/var/log/mysql/relay_$(hostname).log"
         }
         off: {
                 $relay_log_index =
";relay_log_index=/var/log/mysql/relay_$(hostname).log"
         }
}

         case $semisync_master {

         on: {
                 $semisync_master =
"plugin_load=rpl_semi_sync_master=semisync_master.so"
         }
         off: {
                 $semisync_master =
";plugin_load=rpl_semi_sync_master=semisync_master.so"
         }
}

         case $semisync_slave {

         on: {
                 $semisync_slave =
"plugin_load=rpl_semi_sync_slave=semisync_slave.so"
         }
         off: {
                 $semisync_slave =
";plugin_load=rpl_semi_sync_slave=semisync_slave.so"
         }
}

case $performance_schema {
on: {
$performance_schema = "performance_schema"
}
off: {
$performance_schema = ";performance_schema"
}
}

         case $mod_opr {

         master: {
                 $server_id = "1"
         }
         slave: {
                 $server_id = "2"
         }
}

         case $rpl_semi_sync_master_enabled {

         on: {
                 $rpl_semi_sync_master_enabled =
"rpl_semi_sync_master_enabled=1"
         }
         off: {
                 $rpl_semi_sync_master_enabled =
";rpl_semi_sync_master_enabled=1"
         }
}

         case $rpl_semi_sync_master_timeout {

         on: {
                 $rpl_semi_sync_master_timeout =
"rpl_semi_sync_master_timeout=10"
         }
         off: {
                 $rpl_semi_sync_master_timeout =
";rpl_semi_sync_master_timeout=1"
         }
}

         case $rpl_semi_sync_slave_enabled {

         on: {
                 $rpl_semi_sync_slave_enabled =
"rpl_semi_sync_slave_enabled=1"
         }
         off: {
                 $rpl_semi_sync_slave_enabled =
";rpl_semi_sync_slave_enabled=1"
         }
}

packages { mysql-server:
ensure=> present,
}

}

And it is my manifest:

class global::mysql::teste {

mysql { "teste":
mod_ops=> "master",
server_id=> "1",
innodb-file-per-table=> "1",
innodb-buffer-pool-size=> "256M",
innodb-open-files=> "400",
key-buffer-size=> "256M",
tmp-table-size=> "16M",
max-heap-table-size=> "128M",
table-open-cache=> "400",
max-connections=> "1000",
thread-cache-size=> "20",
read_only=> "off",
relay-log-index=> "off",
binlog_format=> "run",
max_binlog_size=> "32M",
query_cache_limit=> "2098",
query_cache_size=> "32M",
semisync_master=> "off",
semisync_slave=> "off",
rpl_semi_sync_master_enabled=> "off",
rpl_semi_sync_master_timeout=> "off",
rpl_semi_sync_slave_enabled=> "off",
performance_schema=> "off",
}
}

Tks Again!
--
Douglas Brancaglion
Security Analist

--
You received this message because you are subscribed to the Google
Groups "Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.


--
You received this message because you are subscribed to the Google Groups "Puppet 
Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to