Forum: CFEngine Help
Subject: insert line: bug ??
Author: stchesmeli
Link to topic: https://cfengine.com/forum/read.php?3,24539,24539#msg-24539

Hello all,

i'm wondering if there is a bug in insert line.... let me explain

I'm trying to build my dhcpd.conf with list of host and array of macs and ips.
My code:


bundle common icebox_lan
{
   vars:
      "my_macs"     string => "50:e5:49:5b:e2:be"; 
      "my_macs"    string => "00:1e:8f:79:ac:e9"; 
      "my_macs"      string => "a8:e3:ee:02:dc:58"; 
      "my_macs"      string => "7c:61:93:8d:93:b8"; 
      "my_macs"      string => "00:19:1d:fd:55:b0"; 
      "my_macs"     string => "00:24:d6:87:18:80"; 
      "my_macs" string => "00:26:b9:d2:ce:aa"; 
      "my_macs"     string => "4c:0f:6e:d4:c2:29"; 
      "my_macs"       string => "e8:5b:5b:c1:17:86"; 
      "my_macs"  string => "00:26:4d:a5:d3:68"; 
      "my_macs" string => "00:27:0e:07:61:a0"; 
      "my_macs"  string => "e8:be:81:2c:27:59"; 

      "my_ips"      string => "192.168.50.10"; 
      "my_ips"     string => "192.168.50.40"; 
      "my_ips"       string => "192.168.50.18"; 
      "my_ips"       string => "192.168.50.19"; 
      "my_ips"       string => "192.168.50.25"; 
      "my_ips"      string => "192.168.50.50"; 
      "my_ips"  string => "192.168.50.51"; 
      "my_ips"      string => "192.168.50.20"; 
      "my_ips"        string => "192.168.50.30"; 
      "my_ips"   string => "192.168.50.31"; 
      "my_ips"  string => "192.168.50.254"; 
      "my_ips"   string => "192.168.50.1"; 

      "my_hosts"          slist => getindices("my_macs");
      "my_domain"         string => "icebox.lan";
      "my_router"         string => "$(my_ips)";
      "my_ns1"            string => "$(my_ips)";
      "my_ns2"            string => "$(my_ips)";
}

bundle common goldorak_conf
{
   vars:
      "pkg_dhcpd"     string => "isc-dhcp-server";
}

bundle agent set_goldo_dhcp_server
{
   vars: 
      "my_dhcdp_options" string => 
"ddns-update-style none;
log-facility local7;

";

      "my_share_network" string =>
"shared-network home 
{
        subnet 192.168.50.0 netmask 255.255.255.0 {
        option domain-name \"$(icebox_lan.my_domain)\";
        option domain-name-servers $(icebox_lan.my_ns1), $(icebox_lan.my_ns2);
        option routers $(icebox_lan.my_router);
        default-lease-time 600;
        max-lease-time 7200;
        }

        subnet 10.0.0.0 netmask 255.255.255.0 {
        option domain-name \"blackhole.lan\";
        option domain-name-servers 10.0.0.1;
        option routers 10.0.0.1;
        range 10.0.0.10 10.0.0.250;
        default-lease-time 600;
        max-lease-time 7200;
        }
}
";
   packages:
      "$(goldorak_conf.pkg_dhcpd)"
      package_policy => "add",
      package_method => generic,
      classes => if_repaired("dhcpd_installed");
   files:
      "/etc/dhcp/dhcpd.conf"
      comment => "Set the dhcpd configuration",
      edit_line => dhcpdconf(${my_dhcdp_options}, ${my_share_network}, 
@(icebox_lan.my_hosts), "icebox_lan.my_macs", "icebox_lan.my_ips" ),
      create => "true",
      edit_defaults => empty,
      perms => mog("644","root","root"),
      classes => if_repaired("dhcpd_repaired");
   processes:
      "/usr/sbin/dhcpd"
      restart_class => "restart_dhcpd";
   commands:
      dhcpd_installed::
         "/usr/sbin/update-rc.d $(goldorak_conf.pkg_dhcpd) defaults";
      dhcpd_repaired|restart_dhcpd::
         "/etc/init.d/isc-dhcp-server restart";
}  

bundle edit_line dhcpdconf(doptions,dnetwork,dhosts, dmacs, dips)
{

  insert_lines:
    "$(doptions)
    $(dnetwork)";
    "host $(dhosts) { $(const.n) $(const.t) hardware ethernet 
$($(dmacs)[$(dhosts)]); $(const.n) $(const.t) fixed-address 
$($(dips)$(dhosts)]); $(const.n) }";

}



my output dhcpd.conf generated:


ddns-update-style none;
log-facility local7;


    shared-network home 
{
        subnet 192.168.50.0 netmask 255.255.255.0 {
        option domain-name "icebox.lan";
        option domain-name-servers 192.168.50.254, 192.168.50.1;
        option routers 192.168.50.254;
        default-lease-time 600;
        max-lease-time 7200;
        }

        subnet 10.0.0.0 netmask 255.255.255.0 {
        option domain-name "blackhole.lan";
        option domain-name-servers 10.0.0.1;
        option routers 10.0.0.1;
        range 10.0.0.10 10.0.0.250;
        default-lease-time 600;
        max-lease-time 7200;
        }
}

host lg-wifi { 
         hardware ethernet 00:26:4d:a5:d3:68; 
         fixed-address     192.168.50.31; 
 }
host livebox { 
         hardware ethernet e8:be:81:2c:27:59; 
         fixed-address     192.168.50.1; 
host vaio { 
         hardware ethernet 4c:0f:6e:d4:c2:29; 
         fixed-address     192.168.50.20; 
host goldorak { 
         hardware ethernet 00:27:0e:07:61:a0; 
         fixed-address     192.168.50.254; 
host ps3 { 
         hardware ethernet a8:e3:ee:02:dc:58; 
         fixed-address     192.168.50.18; 
host wii { 
         hardware ethernet 00:19:1d:fd:55:b0; 
         fixed-address     192.168.50.25; 
host dell { 
         hardware ethernet 00:24:d6:87:18:80; 
         fixed-address     192.168.50.50; 
host mp620 { 
         hardware ethernet 00:1e:8f:79:ac:e9; 
         fixed-address     192.168.50.40; 
host dell-eth { 
         hardware ethernet 00:26:b9:d2:ce:aa; 
         fixed-address     192.168.50.51; 
host aziz { 
         hardware ethernet 50:e5:49:5b:e2:be; 
         fixed-address     192.168.50.10; 
host htc { 
         hardware ethernet 7c:61:93:8d:93:b8; 
         fixed-address     192.168.50.19; 
host lg { 
         hardware ethernet e8:5b:5b:c1:17:86; 
         fixed-address     192.168.50.30; 


As you see, the first host entry is ok:


host lg-wifi { 
         hardware ethernet 00:26:4d:a5:d3:68; 
         fixed-address     192.168.50.31; 
 }


But the next not:


host livebox { 
         hardware ethernet e8:be:81:2c:27:59; 
         fixed-address     192.168.50.1; 

missing the last line with " }". I don't understand why...
And when i change the insert line, insert space for example, or changing 
$(const.n) or $(const.t) with the real "enter" or "tab" sometime the line is ok 
!! ...

My cfengine version: 3.2.1
Official package for ubuntu 11.10 from cfengine website.

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to