Changeset 236


Ignore:
Timestamp:
Jun 22, 2018, 7:19:17 PM (6 years ago)
Author:
g7moreau
Message:
  • Remove last $domain variable and push load and save database command (in ordre to reduce Syck YAML command everywhere)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ddt/ddt

    r235 r236  
    7979
    8080my $xdg_config_home = $ENV{'XDG_CONFIG_HOME'} || "$ENV{'HOME'}/.config";
    81 $CONFIG = YAML::Syck::LoadFile("$xdg_config_home/ddt/config.yml") if -e "$xdg_config_home/ddt/config.yml";
     81$CONFIG = config_load("$xdg_config_home/ddt/config.yml") if -e "$xdg_config_home/ddt/config.yml";
    8282
    8383my $COMPUTER_BASENAME   = $CONFIG->{'database'}{'basename'} || 'ddt';
     
    101101touch $COMPUTER_YAML if not -e $COMPUTER_YAML;
    102102
    103 my $COMPUTER_DB = YAML::Syck::LoadFile($COMPUTER_YAML);
     103my $COMPUTER_DB = ipamdb_load($COMPUTER_YAML);
    104104
    105105if (defined $cmd_db{$command}) {
     
    115115
    116116#--------------------------------------------------------------------------------
     117# LOAD SAVE section
     118#--------------------------------------------------------------------------------
     119
     120sub config_load {
     121   my $config_file = shift;
     122
     123   my $configdb = YAML::Syck::LoadFile($config_file);
     124
     125   return $configdb;
     126   }
     127
     128#---------------------------------------------------------------
     129# Load computer database
     130
     131sub ipamdb_load {
     132   my $database_file = shift;
     133
     134   my $computerdb = YAML::Syck::LoadFile($database_file);
     135
     136   return $computerdb;
     137   }
     138
     139#---------------------------------------------------------------
     140# Save computer database
     141
     142sub ipamdb_save {
     143   my ($database_file, $computerdb) = @_;
     144
     145   my $dirdb = $database_file;
     146      $dirdb =~ s{ / [^/]* $}{}xms;
     147   mkdir "$dirdb", 0755 unless -d "$dirdb";
     148   YAML::Syck::DumpFile($database_file, $computerdb);
     149
     150   return $computerdb;
     151   }
     152
     153#--------------------------------------------------------------------------------
    117154# CONTROL section
    118155#--------------------------------------------------------------------------------
     
    144181
    145182sub control_exist_hostname {
    146    my ($COMPUTER_DB, $domain, $hostname) = @_;
    147 
    148    if ($COMPUTER_DB->{$domain} eq '') {
     183   my ($COMPUTER_DB, $domainset, $hostname) = @_;
     184
     185   if ($COMPUTER_DB->{$domainset} eq '') {
    149186      return 1;
    150187      }
    151188
    152    my @domaindb = @{$COMPUTER_DB->{$domain}};
    153 
    154    for my $value (@domaindb) {
     189   my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     190
     191   for my $value (@domainsetdb) {
    155192      for my $id (keys %{$value}) {
    156193         if ($value->{$id}->{'hostname'} eq $hostname) {
     
    171208   my ($COMPUTER_DB, $mac) = @_;
    172209
    173    for my $domain_name (keys %{$COMPUTER_DB}) {
    174       next if $domain_name eq 'dset';
    175       next if $domain_name eq 'pool';
    176       next if $domain_name eq 'pxe';
    177       next if $domain_name eq 'tag';
    178 
    179       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
    180       for my $value (@domaindb) {
     210   for my $domainset_current (keys %{$COMPUTER_DB}) {
     211      next if $domainset_current eq 'dset';
     212      next if $domainset_current eq 'pool';
     213      next if $domainset_current eq 'pxe';
     214      next if $domainset_current eq 'tag';
     215
     216      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     217      for my $value (@domainsetdb) {
    181218         for my $id (keys %{$value}) {
    182219            if ($id eq $mac) {
     
    198235   my ($COMPUTER_DB, $ip) = @_;
    199236
    200    for my $domain_name (keys %{$COMPUTER_DB}) {
    201       next if $domain_name eq 'dset';
    202       next if $domain_name eq 'pool';
    203       next if $domain_name eq 'pxe';
    204       next if $domain_name eq 'tag';
    205 
    206       for my $value (@{$COMPUTER_DB->{$domain_name}}) {
     237   for my $domainset_current (keys %{$COMPUTER_DB}) {
     238      next if $domainset_current eq 'dset';
     239      next if $domainset_current eq 'pool';
     240      next if $domainset_current eq 'pxe';
     241      next if $domainset_current eq 'tag';
     242
     243      for my $value (@{$COMPUTER_DB->{$domainset_current}}) {
    207244         for my $id (keys %{$value}) {
    208245            #print "Erreur: cette adresse IP $ip existe déjà\n";
     
    321358
    322359sub get_mac_from_hostname {
    323    my ($domain, $hostname, $mac) = @_;
     360   my ($domainset, $hostname, $mac) = @_;
    324361
    325362   return $mac if $mac ne '';
     
    327364
    328365   LOOP_ON_COMPUTER:
    329    for my $computer (@{$COMPUTER_DB->{$domain}}) {
     366   for my $computer (@{$COMPUTER_DB->{$domainset}}) {
    330367      my ($mac_address, $attribute) = %{$computer};
    331368
     
    339376
    340377sub get_mac_from_ip {
    341    my ($domain, $ip, $mac) = @_;
     378   my ($domainset, $ip, $mac) = @_;
    342379
    343380   return $mac if $mac ne '';
     
    345382
    346383   LOOP_ON_COMPUTER:
    347    for my $computer (@{$COMPUTER_DB->{$domain}}) {
     384   for my $computer (@{$COMPUTER_DB->{$domainset}}) {
    348385      my ($mac_address, $attribute) = %{$computer};
    349386
     
    358395
    359396sub get_computer_from_mac {
    360    my ($domain, $mac) = @_;
     397   my ($domainset, $mac) = @_;
    361398
    362399   LOOP_ON_COMPUTER:
    363    for my $computer (@{$COMPUTER_DB->{$domain}}) {
     400   for my $computer (@{$COMPUTER_DB->{$domainset}}) {
    364401      my ($mac_address, $attribute) = %{$computer};
    365402
     
    385422   control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    386423
    387    my @domaindb = @{$COMPUTER_DB->{$domainset}};
     424   my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
    388425   my $cpt=0;
    389    for my $value (@domaindb) {
     426   for my $value (@domainsetdb) {
    390427      for my $id (keys %{$value}) {
    391428
     
    395432            $COMPUTER_DB->{$domainset}[$cpt]{$id}{'alias'}        = $alias;
    396433            $COMPUTER_DB->{$domainset}[$cpt]{$id}{'modify_time'}  = time;
    397             YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     434            ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    398435            print "Update attribute alias [OK]\n";
    399436            exit;
     
    414451   $comment = normalize_comment($comment);
    415452   control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    416    control_syntax_mac_address($mac)                or exit;
    417    control_exist_mac($COMPUTER_DB, $mac)            or die "Error: Physical MAC address already exists: $mac\n";
    418    control_syntax_ip($ip)                          or exit;
    419    control_exist_ip($COMPUTER_DB, $ip)              or die "Error: IP address already exist in domain set attachement $domainset: $ip\n";
    420    control_syntax_comment($comment)                or exit;
     453   control_syntax_mac_address($mac)                   or exit;
     454   control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
     455   control_syntax_ip($ip)                             or exit;
     456   control_exist_ip($COMPUTER_DB, $ip)                or die "Error: IP address already exist in domain set attachement $domainset: $ip\n";
     457   control_syntax_comment($comment)                   or exit;
    421458   my $timestamp = time;
    422459   push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     
    432469   print "Add the computer: $hostname, IP: $ip, MAC: $mac, Domain Set: $domainset\n";
    433470
    434    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     471   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    435472   }
    436473
     
    447484   $mac = normalize_mac_address($mac);
    448485   $comment = normalize_comment($comment);
    449    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
     486   control_exist_domainset($COMPUTER_DB, $domainset)  or exit;
    450487   control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    451    control_syntax_mac_address($mac)             or exit;
    452    control_exist_mac($COMPUTER_DB, $mac)         or die "Error: Physical MAC address already exists: $mac\n";
    453    control_syntax_ip($ip)                       or exit;
    454    control_exist_ip($COMPUTER_DB, $ip)           or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
    455    control_syntax_comment($comment)             or exit;
     488   control_syntax_mac_address($mac)                   or exit;
     489   control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
     490   control_syntax_ip($ip)                             or exit;
     491   control_exist_ip($COMPUTER_DB, $ip)                or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
     492   control_syntax_comment($comment)                   or exit;
    456493
    457494   push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     
    467504   print "Add the computer: $hostname, IP: $ip, MAC: $mac, Domain Set: $domainset\n";
    468505
    469    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     506   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    470507   }
    471508
     
    479516   $mac = normalize_mac_address($mac);
    480517   $comment = normalize_comment($comment);
    481    control_exist_domainset($COMPUTER_DB, $domainset)   or exit;
     518   control_exist_domainset($COMPUTER_DB, $domainset)  or exit;
    482519   control_syntax_mac_address($mac)                   or exit;
    483    control_exist_mac($COMPUTER_DB, $mac)               or die "Error: Physical MAC address already exists: $mac\n";
    484    control_exist_pool($COMPUTER_DB, $pool)             or die "Error: The pool doesn't exists: $pool\n";
     520   control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
     521   control_exist_pool($COMPUTER_DB, $pool)            or die "Error: The pool doesn't exists: $pool\n";
    485522   control_syntax_comment($comment)                   or exit;
    486523   push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     
    495532   print "Add the computer in pool MAC: $mac, Domain Set: $domainset, Pool: $pool\n";
    496533
    497    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     534   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    498535   }
    499536
     
    628665   my $timestamp = time;
    629666
    630    control_exist_domainset($COMPUTER_DB, $domainset)            or exit;
    631    control_exist_hostname($COMPUTER_DB, $domainset, $hostname)  or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
     667   control_exist_domainset($COMPUTER_DB, $domainset)           or exit;
     668   control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    632669   control_syntax_ip($ip)                                      or exit;
    633    control_exist_ip($COMPUTER_DB, $ip)                          or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
     670   control_exist_ip($COMPUTER_DB, $ip)                         or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
    634671   control_syntax_comment($comment)                            or exit;
    635672
     
    649686   print "Add the virtual computer: $hostname, IP: $ip, Domain Set: $domainset\n";
    650687
    651    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     688   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    652689   }
    653690
     
    667704
    668705   $mac = normalize_mac_address($mac);
    669    control_exist_domainset($COMPUTER_DB, $domainset)   or exit;
     706   control_exist_domainset($COMPUTER_DB, $domainset)  or exit;
    670707   control_syntax_mac_address($mac)                   or exit;
    671    control_exist_mac($COMPUTER_DB, $mac)               or die "Error: Physical MAC address already exists: $mac\n";
     708   control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
    672709   if ($ip ne '') {
    673710      control_syntax_ip($ip) or exit;
     
    676713         exit;
    677714         }
    678       my @domaindb = @{$COMPUTER_DB->{$domainset}};
     715      my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
    679716      my $cpt = 0;
    680       for my $value (@domaindb) {
     717      for my $value (@domainsetdb) {
    681718         for my $id (keys %{$value}) {
    682719            if ($value->{$id}->{'ip'} eq $ip) {
     
    684721               $host->{'modify_time'} = time;
    685722               $COMPUTER_DB->{$domainset}->[$cpt] = { $mac => $host };
    686                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     723               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    687724               print "Update [OK]\n";
    688725               print "Hostname: $host->{'hostname'}\n";
     
    701738         die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    702739         }
    703       my @domaindb = @{$COMPUTER_DB->{$domainset}};
     740      my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
    704741      my $cpt = 0;
    705       for my $value (@domaindb) {
     742      for my $value (@domainsetdb) {
    706743         for my $id (keys %{$value}) {
    707744            if ($value->{$id}->{'hostname'} eq $hostname) {
     
    709746               $host->{'modify_time'} = time;
    710747               $COMPUTER_DB->{$domainset}->[$cpt] = { $mac => $host };
    711                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     748               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    712749               print "Update [OK]\n";
    713750               print "Hostname: $host->{'hostname'}\n";
     
    736773   control_syntax_ip($ip) or exit;
    737774   control_exist_ip($COMPUTER_DB, $ip) or die "Error: IP address already exist in domain set attachement $domainset: $ip\n";
    738    my @domaindb = @{$COMPUTER_DB->{$domainset}};
     775   my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
    739776   my $cpt = 0;
    740    for my $value (@domaindb) {
     777   for my $value (@domainsetdb) {
    741778      for my $id (keys %{$value}) {
    742779         if (($value->{$id}->{'hostname'} eq $hostname)
     
    748785            $COMPUTER_DB->{$domainset}[$cpt]{$id}{'ip'} = $ip;
    749786            $COMPUTER_DB->{$domainset}[$cpt]{$id}{'modify_time'} = time;
    750             YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     787            ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    751788            print "Update [OK]\n";
    752789            print "Hostname: $hostname\n";
     
    783820   control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    784821
    785    my @domaindb = @{$COMPUTER_DB->{$domainset}};
     822   my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
    786823   my $cpt = 0;
    787    for my $value (@domaindb) {
     824   for my $value (@domainsetdb) {
    788825      for my $id (keys %{$value}) {
    789826         if ($value->{$id}->{'ip'} eq $ip) {
    790827            $COMPUTER_DB->{$domainset}[$cpt]{$id}{'hostname'} = $hostname;
    791828            $COMPUTER_DB->{$domainset}[$cpt]{$id}{'modify_time'} = time;
    792             YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     829            ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    793830            print "Update [OK]\n";
    794831            print "Hostname: $hostname\n";
     
    902939   control_syntax_comment($comment)                   or exit;
    903940
    904    my @domaindb = @{$COMPUTER_DB->{$domainset}};
     941   my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
    905942   my $cpt = 0;
    906    for my $value (@domaindb) {
     943   for my $value (@domainsetdb) {
    907944      for my $id (keys %{$value}) {
    908945         if ($id eq $mac) {
     
    911948            $host->{'modify_time'} = time;
    912949
    913             YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     950            ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    914951            exit;
    915952            }
     
    947984
    948985   LOOP_ON_DOMAINSET:
    949    for my $domain_name (keys %{$COMPUTER_DB}) {
    950       next if $domain_name eq 'dset';
    951       next if $domain_name eq 'pool';
    952       next if $domain_name eq 'pxe';
    953       next if $domain_name eq 'tag';
    954 
    955       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     986   for my $domainset_current (keys %{$COMPUTER_DB}) {
     987      next if $domainset_current eq 'dset';
     988      next if $domainset_current eq 'pool';
     989      next if $domainset_current eq 'pxe';
     990      next if $domainset_current eq 'tag';
     991
     992      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    956993      my $cpt_mac = 0;
    957       for my $value (@domaindb) {
     994      for my $value (@domainsetdb) {
    958995         for my $id (keys %{$value}) {
    959996            if ($id eq $mac) {
    960                my $host = $COMPUTER_DB->{$domain_name}[$cpt_mac]{$mac};
     997               my $host = $COMPUTER_DB->{$domainset_current}[$cpt_mac]{$mac};
    961998               next LOOP_ON_DOMAINSET if $host->{'ip'} ne $ip;
    962999
    9631000               $host->{'modify_time'} = time;
    964                splice(@{$COMPUTER_DB->{$domain_name}}, $cpt_mac => 1);
     1001               splice(@{$COMPUTER_DB->{$domainset_current}}, $cpt_mac => 1);
    9651002               push @{$COMPUTER_DB->{$domainset}}, { $mac => $host };
    9661003
    967                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1004               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    9681005               exit;
    9691006               }
     
    10291066
    10301067      delete $attribute->{'tag'} if $tags eq 'universal';
    1031       YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1068      ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    10321069      exit;
    10331070      }
     
    10541091         }
    10551092
    1056       for my $domain_name (keys %{$COMPUTER_DB}) {
    1057          next if $domain_name eq 'dset';
    1058          next if $domain_name eq 'pool';
    1059          next if $domain_name eq 'pxe';
    1060          next if $domain_name eq 'tag';
    1061 
    1062          my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     1093      for my $domainset_current (keys %{$COMPUTER_DB}) {
     1094         next if $domainset_current eq 'dset';
     1095         next if $domainset_current eq 'pool';
     1096         next if $domainset_current eq 'pxe';
     1097         next if $domainset_current eq 'tag';
     1098
     1099         my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    10631100         my $cpt_mac = 0;
    1064          for my $value (@domaindb) {
     1101         for my $value (@domainsetdb) {
    10651102            for my $id (keys %{$value}) {
    10661103
    10671104               if ($value->{$id}->{'ip'} eq $ip) {
    10681105                  my $timestamp = time;
    1069                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1070                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'enabled'} = 'no';
    1071                   print "L'adresse IP: $ip a été désactivée. Valeur du champs enabled: [".$COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'enabled'}."]\n";
    1072                   YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1106                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1107                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'no';
     1108                  print "L'adresse IP: $ip a été désactivée. Valeur du champs enabled: [".$COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."]\n";
     1109                  ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    10731110                  exit;
    10741111                  }
     
    10921129               $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'enabled'} = 'no';
    10931130               print "La machine $hostname (domaine: $domainset) a été désactivé du DHCP. Valeur du champs enabled: [".$COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'enabled'}."]\n";
    1094                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1131               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    10951132               exit;
    10961133               }
     
    11191156      }
    11201157
    1121    for my $domain_name (keys %{$COMPUTER_DB}) {
    1122       next if $domain_name eq 'dset';
    1123       next if $domain_name eq 'pool';
    1124       next if $domain_name eq 'pxe';
    1125       next if $domain_name eq 'tag';
    1126 
    1127       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     1158   for my $domainset_current (keys %{$COMPUTER_DB}) {
     1159      next if $domainset_current eq 'dset';
     1160      next if $domainset_current eq 'pool';
     1161      next if $domainset_current eq 'pxe';
     1162      next if $domainset_current eq 'tag';
     1163
     1164      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    11281165
    11291166      $cpt_mac=0;
    1130       for my $value (@domaindb) {
     1167      for my $value (@domainsetdb) {
    11311168         for my $id (keys %{$value}) {
    11321169            if ($id eq $mac) {
    11331170               if ($value->{$id}->{'ip'} eq $pool) {
    1134                   #splice(@{$COMPUTER_DB->($domain_name)} , $cpt_mac => 1);
     1171                  #splice(@{$COMPUTER_DB->($domainset_current)} , $cpt_mac => 1);
    11351172                  my $timestamp = time;
    1136                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1137                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'enabled'} = 'no';
    1138                   print  $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'enabled'}."\n";
    1139                   YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1173                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1174                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'no';
     1175                  print  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."\n";
     1176                  ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    11401177                  print "Désactivation de la machine $mac du pool $pool [OK]\n";
    11411178                  exit;
     
    11681205         }
    11691206
    1170       for my $domain_name (keys %{$COMPUTER_DB}) {
    1171          next if $domain_name eq 'dset';
    1172          next if $domain_name eq 'pool';
    1173          next if $domain_name eq 'pxe';
    1174          next if $domain_name eq 'tag';
    1175 
    1176          my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     1207      for my $domainset_current (keys %{$COMPUTER_DB}) {
     1208         next if $domainset_current eq 'dset';
     1209         next if $domainset_current eq 'pool';
     1210         next if $domainset_current eq 'pxe';
     1211         next if $domainset_current eq 'tag';
     1212
     1213         my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    11771214         my $cpt_mac=0;
    1178          for my $value (@domaindb) {
     1215         for my $value (@domainsetdb) {
    11791216            for my $id (keys %{$value}) {
    11801217               if ($value->{$id}->{'ip'} eq $ip) {
    11811218                  my $timestamp = time;
    1182                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1183                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
    1184                   print "L'adresse IP: $ip a été réactivée. Valeur du champs enabled: [".$COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'enabled'}."]\n";
    1185                   YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1219                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1220                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
     1221                  print "L'adresse IP: $ip a été réactivée. Valeur du champs enabled: [".$COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."]\n";
     1222                  ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    11861223                  exit;
    11871224                  }
     
    12041241               $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
    12051242               print "La machine $hostname (domaine: $domainset) a été réactivée du DHCP. Valeur du champs enabled: [".$COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'enabled'}."]\n";
    1206                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1243               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    12071244               exit;
    12081245               }
     
    12311268      }
    12321269
    1233    for my $domain_name (keys %{$COMPUTER_DB}) {
    1234       next if $domain_name eq 'dset';
    1235       next if $domain_name eq 'pool';
    1236       next if $domain_name eq 'pxe';
    1237       next if $domain_name eq 'tag';
    1238 
    1239       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     1270   for my $domainset_current (keys %{$COMPUTER_DB}) {
     1271      next if $domainset_current eq 'dset';
     1272      next if $domainset_current eq 'pool';
     1273      next if $domainset_current eq 'pxe';
     1274      next if $domainset_current eq 'tag';
     1275
     1276      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    12401277
    12411278      $cpt_mac=0;
    1242       for my $value (@domaindb) {
     1279      for my $value (@domainsetdb) {
    12431280         for my $id (keys %{$value}) {
    12441281            if ($id eq $mac) {
    12451282               if ($value->{$id}->{'ip'} eq $pool) {
    1246                   #splice(@{$COMPUTER_DB->($domain_name)} , $cpt_mac => 1);
     1283                  #splice(@{$COMPUTER_DB->($domainset_current)} , $cpt_mac => 1);
    12471284                  my $timestamp = time;
    1248                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1249                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
    1250                   YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1285                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1286                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
     1287                  ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    12511288                  print "Réactivation de la machine $mac du pool $pool [OK]\n";
    12521289                  exit;
     
    13811418               splice(@{$COMPUTER_DB->{$domainset}}, $cpt_mac => 1);
    13821419               print "La machine $ip a été supprimer du domaine $domainset\n";
    1383                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1420               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    13841421               exit;
    13851422               }
     
    14001437               splice(@{$COMPUTER_DB->{$domainset}}, $cpt_mac => 1);
    14011438               print "La machine $hostname a été supprimer du domaine $domainset\n";
    1402                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1439               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    14031440               exit;
    14041441               }
     
    14291466      }
    14301467
    1431    for my $domain_name (keys %{$COMPUTER_DB}) {
    1432       next if $domain_name eq 'dset';
    1433       next if $domain_name eq 'pool';
    1434       next if $domain_name eq 'pxe';
    1435       next if $domain_name eq 'tag';
    1436 
    1437       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     1468   for my $domainset_current (keys %{$COMPUTER_DB}) {
     1469      next if $domainset_current eq 'dset';
     1470      next if $domainset_current eq 'pool';
     1471      next if $domainset_current eq 'pxe';
     1472      next if $domainset_current eq 'tag';
     1473
     1474      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    14381475
    14391476      $cpt_mac=0;
    1440       for my $value (@domaindb) {
     1477      for my $value (@domainsetdb) {
    14411478         for my $id (keys %{$value}) {
    14421479
    14431480            if ($id eq $mac) {
    14441481               if ($value->{$id}->{'ip'} eq $pool) {
    1445                   #splice(@{$COMPUTER_DB->($domain_name)} , $cpt_mac => 1);
    1446                   splice(@{$COMPUTER_DB->{$domain_name}}, $cpt_mac => 1);
    1447                   YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1482                  #splice(@{$COMPUTER_DB->($domainset_current)} , $cpt_mac => 1);
     1483                  splice(@{$COMPUTER_DB->{$domainset_current}}, $cpt_mac => 1);
     1484                  ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    14481485                  print "Suppression de la machine $mac du pool $pool [OK]\n";
    14491486                  exit;
     
    15441581      };
    15451582   $COMPUTER_DB->{$domainset} ||= []; # Create empty Domain Set computer list by default
    1546    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1583   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    15471584   }
    15481585
     
    16181655      'domain'      => $domainset,
    16191656      };
    1620    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1657   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    16211658   }
    16221659
     
    16821719      'modify_time'     => $timestamp,
    16831720      };
    1684    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1721   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    16851722   }
    16861723
     
    17051742   # Test if some computer use this config
    17061743   LOOP_ON_DOMAIN:
    1707    for my $domain_name (keys %{$COMPUTER_DB}) {
    1708       next if $domain_name eq 'dset';
    1709       next if $domain_name eq 'pool';
    1710       next if $domain_name eq 'pxe';
    1711       next if $domain_name eq 'tag';
     1744   for my $domainset_current (keys %{$COMPUTER_DB}) {
     1745      next if $domainset_current eq 'dset';
     1746      next if $domainset_current eq 'pool';
     1747      next if $domainset_current eq 'pxe';
     1748      next if $domainset_current eq 'tag';
    17121749
    17131750      LOOP_ON_COMPUTER:
    1714       for my $computer (@{$COMPUTER_DB->{$domain_name}}) {
     1751      for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
    17151752         my ($mac_address, $attribute) = %{$computer};
    17161753
    17171754         if (exists $attribute->{'pxe_config'}) {
    17181755            my $hostname = $attribute->{'hostname'};
    1719             die "Error: computer still use this PXE config: $hostname.$domain_name $mac_address\n" if $pxe_config eq $attribute->{'pxe_config'};
     1756            die "Error: computer still use this PXE config: $hostname.$domainset_current $mac_address\n" if $pxe_config eq $attribute->{'pxe_config'};
    17201757            }
    17211758         }
     
    17231760
    17241761   delete $COMPUTER_DB->{'pxe'}{$pxe_config};
    1725    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1762   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    17261763   }
    17271764
     
    17831820         }
    17841821
    1785       for my $domain_name (keys %{$COMPUTER_DB}) {
    1786          next if $domain_name eq 'dset';
    1787          next if $domain_name eq 'pool';
    1788          next if $domain_name eq 'pxe';
    1789          next if $domain_name eq 'tag';
     1822      for my $domainset_current (keys %{$COMPUTER_DB}) {
     1823         next if $domainset_current eq 'dset';
     1824         next if $domainset_current eq 'pool';
     1825         next if $domainset_current eq 'pxe';
     1826         next if $domainset_current eq 'tag';
    17901827
    17911828         my $cpt_mac = 0;
    1792          for my $computer (@{$COMPUTER_DB->{$domain_name}}) {
     1829         for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
    17931830            for my $id (keys %{$computer}) {
    17941831               if ($computer->{$id}->{'ip'} eq $ip) {
    17951832                  my $timestamp = time;
    1796                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1797                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'pxe_config'}  = $pxe_config;
     1833                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1834                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'}  = $pxe_config;
    17981835                  print "IP Address: $ip, PXE enabled in config: $pxe_config\n";
    1799                   YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1836                  ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    18001837                  exit;
    18011838                  }
     
    18181855               $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'}  = $pxe_config;
    18191856               print "Host $hostname ($domainset), PXE enabled in config: $pxe_config\n";
    1820                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1857               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    18211858               exit;
    18221859               }
     
    18621899         }
    18631900
    1864       for my $domain_name (keys %{$COMPUTER_DB}) {
    1865          next if $domain_name eq 'dset';
    1866          next if $domain_name eq 'pool';
    1867          next if $domain_name eq 'pxe';
    1868          next if $domain_name eq 'tag';
     1901      for my $domainset_current (keys %{$COMPUTER_DB}) {
     1902         next if $domainset_current eq 'dset';
     1903         next if $domainset_current eq 'pool';
     1904         next if $domainset_current eq 'pxe';
     1905         next if $domainset_current eq 'tag';
    18691906
    18701907         my $cpt_mac = 0;
    1871          for my $computer (@{$COMPUTER_DB->{$domain_name}}) {
     1908         for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
    18721909            for my $id (keys %{$computer}) {
    18731910               if ($computer->{$id}->{'ip'} eq $ip) {
    1874                   next if not exists $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'pxe_config'};
    1875 
    1876                   my $pxe_config = $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'pxe_config'};
     1911                  next if not exists $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
     1912
     1913                  my $pxe_config = $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
    18771914                  my $timestamp  = time;
    1878                   $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1879                   delete $COMPUTER_DB->{$domain_name}[$cpt_mac]->{$id}->{'pxe_config'};
     1915                  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1916                  delete $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
    18801917                  print "IP Address: $ip, PXE disable from config: $pxe_config\n";
    1881                   YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1918                  ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    18821919                  exit;
    18831920                  }
     
    19031940               delete $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'};
    19041941               print "Host $hostname ($domainset), PXE disable from config: $pxe_config\n";
    1905                YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1942               ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    19061943               exit;
    19071944               }
     
    19541991      'modify_time'     => $timestamp,
    19551992      };
    1956    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     1993   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    19571994   }
    19581995
     
    19772014   # Test if some computer use this config
    19782015   LOOP_ON_DOMAIN:
    1979    for my $domain_name (keys %{$COMPUTER_DB}) {
    1980       next if $domain_name eq 'dset';
    1981       next if $domain_name eq 'pool';
    1982       next if $domain_name eq 'pxe';
    1983       next if $domain_name eq 'tag';
     2016   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2017      next if $domainset_current eq 'dset';
     2018      next if $domainset_current eq 'pool';
     2019      next if $domainset_current eq 'pxe';
     2020      next if $domainset_current eq 'tag';
    19842021
    19852022      LOOP_ON_COMPUTER:
    1986       for my $computer (@{$COMPUTER_DB->{$domain_name}}) {
     2023      for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
    19872024         my ($mac_address, $attribute) = %{$computer};
    19882025
    19892026         if (exists $attribute->{'tag'}) {
    19902027            my $hostname = $attribute->{'hostname'};
    1991             die "Error: Computer still use this TAG: $hostname.$domain_name $mac_address\n" if $tag eq $attribute->{'tag'};
     2028            die "Error: Computer still use this TAG: $hostname.$domainset_current $mac_address\n" if $tag eq $attribute->{'tag'};
    19922029            }
    19932030         }
     
    19952032
    19962033   delete $COMPUTER_DB->{'tag'}{$tag};
    1997    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     2034   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    19982035   }
    19992036
     
    20262063
    20272064   LOOP_ON_DOMAIN:
    2028    for my $domain_name (keys %{$COMPUTER_DB}) {
    2029       next if $domain_name eq 'dset';
    2030       next if $domain_name eq 'pool';
    2031       next if $domain_name eq 'pxe';
    2032       next if $domain_name eq 'tag';
    2033 
    2034       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     2065   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2066      next if $domainset_current eq 'dset';
     2067      next if $domainset_current eq 'pool';
     2068      next if $domainset_current eq 'pxe';
     2069      next if $domainset_current eq 'tag';
     2070
     2071      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    20352072
    20362073      LOOP_ON_COMPUTER:
    2037       for my $computer (@domaindb) {
     2074      for my $computer (@domainsetdb) {
    20382075         my ($mac_address, $attribute) = %{$computer};
    20392076         my $new_mac = normalize_mac_address($mac_address);
     
    20562093   print "# FLAG :$flag_change\n";
    20572094
    2058    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB) if $flag_change;
     2095   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB) if $flag_change;
    20592096   }
    20602097
     
    20642101
    20652102   LOOP_ON_DOMAIN:
    2066    for my $domain_name (keys %{$COMPUTER_DB}) {
    2067       next if $domain_name eq 'dset';
    2068       next if $domain_name eq 'pool';
    2069       next if $domain_name eq 'pxe';
    2070       next if $domain_name eq 'tag';
    2071 
    2072       print "$domain_name\n";
     2103   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2104      next if $domainset_current eq 'dset';
     2105      next if $domainset_current eq 'pool';
     2106      next if $domainset_current eq 'pxe';
     2107      next if $domainset_current eq 'tag';
     2108
     2109      print "$domainset_current\n";
    20732110      }
    20742111   }
     
    20942131
    20952132   LOOP_ON_DOMAIN:
    2096    for my $domain_name (keys %{$COMPUTER_DB}) {
    2097       next if $domain_name eq 'dset';
    2098       next if $domain_name eq 'pool';
    2099       next if $domain_name eq 'pxe';
    2100       next if $domain_name eq 'tag';
    2101 
    2102       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     2133   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2134      next if $domainset_current eq 'dset';
     2135      next if $domainset_current eq 'pool';
     2136      next if $domainset_current eq 'pxe';
     2137      next if $domainset_current eq 'tag';
     2138
     2139      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    21032140
    21042141      LOOP_ON_COMPUTER:
    2105       for my $computer (@domaindb) {
     2142      for my $computer (@domainsetdb) {
    21062143         my ($mac_address, $attribute) = %{$computer};
    21072144
     
    21252162
    21262163         printf "%-30s  %-20s %17s %9s %3s %10s %s\n",
    2127             $attribute->{'hostname'} . '.' . $domain_name,
     2164            $attribute->{'hostname'} . '.' . $domainset_current,
    21282165            $attribute->{'ip'},
    21292166            $mac_address,
     
    21442181
    21452182   LOOP_ON_DOMAIN:
    2146    for my $domain_name (keys %{$COMPUTER_DB}) {
    2147       next if $domain_name eq 'dset';
    2148       next if $domain_name eq 'pool';
    2149       next if $domain_name eq 'pxe';
    2150       next if $domain_name eq 'tag';
    2151 
    2152       print "\n# *** List of computers in the domain set: $domain_name ***\n";
     2183   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2184      next if $domainset_current eq 'dset';
     2185      next if $domainset_current eq 'pool';
     2186      next if $domainset_current eq 'pxe';
     2187      next if $domainset_current eq 'tag';
     2188
     2189      print "\n# *** List of computers in the domain set: $domainset_current ***\n";
    21532190      printf "%-30s  %-20s %17s %5s %7s %-10s %s\n",
    21542191         'Hostname',
     
    21592196         'Date',
    21602197         'Comment';
    2161       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     2198      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    21622199
    21632200      LOOP_ON_COMPUTER:
    2164       for my $computer (@domaindb) {
     2201      for my $computer (@domainsetdb) {
    21652202         my ($mac_address, $attribute) = %{$computer};
    21662203
     
    21702207                  'mac_address'  => $mac_address,
    21712208                  %{$attribute},
    2172                   'domain'       => $domain_name,
     2209                  'domain'       => $domainset_current,
    21732210                  };
    21742211               next LOOP_ON_COMPUTER;
     
    21982235
    21992236         printf "%-30s  %-20s %17s %9s %3s %10s %s\n",
    2200             $attribute->{'hostname'} . '.' . $domain_name,
     2237            $attribute->{'hostname'} . '.' . $domainset_current,
    22012238            $ip,
    22022239            $mac_address,
     
    22472284   my %file_pool;
    22482285
    2249    for my $domain_name (keys %{$COMPUTER_DB}) {
    2250       next if $domain_name eq 'dset';
    2251       next if $domain_name eq 'pool';
    2252       next if $domain_name eq 'pxe';
    2253       next if $domain_name eq 'tag';
    2254 
    2255       open FILE_VLAN, '>', "$FOLDER_GEN_DHCP/$domain_name";
    2256       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
    2257       for my $value (@domaindb) {
     2286   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2287      next if $domainset_current eq 'dset';
     2288      next if $domainset_current eq 'pool';
     2289      next if $domainset_current eq 'pxe';
     2290      next if $domainset_current eq 'tag';
     2291
     2292      open FILE_VLAN, '>', "$FOLDER_GEN_DHCP/$domainset_current";
     2293      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2294      for my $value (@domainsetdb) {
    22582295         ALL_MAC_ADDRESS:
    22592296         for my $mac_addres (keys %{$value}) {
     
    23502387   my $pool_domain;
    23512388
    2352    for my $domain_name (keys %{$COMPUTER_DB}) {
    2353       next if $domain_name eq 'dset';
    2354       next if $domain_name eq 'pool';
    2355       next if $domain_name eq 'pxe';
    2356       next if $domain_name eq 'tag';
    2357 
    2358       if ($domain_name eq 'pool') {
     2389   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2390      next if $domainset_current eq 'dset';
     2391      next if $domainset_current eq 'pool';
     2392      next if $domainset_current eq 'pxe';
     2393      next if $domainset_current eq 'tag';
     2394
     2395      if ($domainset_current eq 'pool') {
    23592396         #next;
    2360          for my $value (@{$COMPUTER_DB->{$domain_name}}) {
     2397         for my $value (@{$COMPUTER_DB->{$domainset_current}}) {
    23612398            for my $pool_name (keys %{$value}) {
    23622399               $pool_domain = $value->{$pool_name}->{'domain'}."\n";
     
    23812418      else {
    23822419         #--- Création du fichier non-reverse ---#
    2383          open ( FILE_FORWARD_DNS, ">> $FOLDER_GEN_DNS/db.$domain_name.fwd");
    2384          open ( FILE_REVERSE_DNS, ">> $FOLDER_GEN_DNS/db.$domain_name.rev");
    2385          my @domaindb = @{$COMPUTER_DB->{$domain_name}};
    2386          for my $value (@domaindb) {
     2420         open ( FILE_FORWARD_DNS, ">> $FOLDER_GEN_DNS/db.$domainset_current.fwd");
     2421         open ( FILE_REVERSE_DNS, ">> $FOLDER_GEN_DNS/db.$domainset_current.rev");
     2422         my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2423         for my $value (@domainsetdb) {
    23872424            for my $id (keys %{$value}) {
    23882425               #host pcdavoust {  deny-unknown-clients;
     
    23962433               my $enabled      = $value->{$id}->{'enabled'};
    23972434
    2398                my $dns_domain = $domain_name;
    2399                if (exists $COMPUTER_DB->{'dset'}{$domain_name}) {
    2400                   $dns_domain = $COMPUTER_DB->{'dset'}{$domain_name}{'dns_extension'};
     2435               my $dns_domain = $domainset_current;
     2436               if (exists $COMPUTER_DB->{'dset'}{$domainset_current}) {
     2437                  $dns_domain = $COMPUTER_DB->{'dset'}{$domainset_current}{'dns_extension'};
    24012438                  }
    24022439               my @T_split = split(/\./ , $ip);
     
    24212458            #$cpt=$cpt+1;
    24222459            }
    2423          print "- DNS: db.$domain_name.fwd db.$domain_name.rev [CREATE].\n";
     2460         print "- DNS: db.$domainset_current.fwd db.$domainset_current.rev [CREATE].\n";
    24242461         print "Ex : sort -k 4n -t . /usr/local/dhcp-dns-tools/dns/dns.hmg.priv\n";
    24252462         close FILE_REVERSE_DNS;
     
    24472484
    24482485   LOOP_ON_DOMAIN:
    2449    for my $domain_name (keys %{$COMPUTER_DB}) {
    2450       next if $domain_name eq 'dset';
    2451       next if $domain_name eq 'pool';
    2452       next if $domain_name eq 'pxe';
    2453       next if $domain_name eq 'tag';
    2454 
    2455       my @domaindb = @{$COMPUTER_DB->{$domain_name}};
     2486   for my $domainset_current (keys %{$COMPUTER_DB}) {
     2487      next if $domainset_current eq 'dset';
     2488      next if $domainset_current eq 'pool';
     2489      next if $domainset_current eq 'pxe';
     2490      next if $domainset_current eq 'tag';
     2491
     2492      my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
    24562493
    24572494      LOOP_ON_COMPUTER:
    2458       for my $computer (@domaindb) {
     2495      for my $computer (@domainsetdb) {
    24592496         my ($mac_address, $attribute) = %{$computer};
    24602497         #my $new_mac = normalize_mac_address($mac_address);
     
    24672504
    24682505         if ($attribute->{'hostname'} ne $dns_hostname) {
    2469             print "$mac_address ($domain_name) $ip - $dns_hostname / $attribute->{'hostname'} # $attribute->{'comment'}\n";
     2506            print "$mac_address ($domainset_current) $ip - $dns_hostname / $attribute->{'hostname'} # $attribute->{'comment'}\n";
    24702507            next LOOP_ON_COMPUTER;
    24712508            }
     
    26562693      }
    26572694
    2658    YAML::Syck::DumpFile("$COMPUTER_YAML", $COMPUTER_DB);
     2695   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
    26592696   }
    26602697
Note: See TracChangeset for help on using the changeset viewer.