Changeset 238


Ignore:
Timestamp:
Jun 22, 2018, 10:30:05 PM (2 years ago)
Author:
g7moreau
Message:
  • Remove global variable $COMPUTER_DB et change it to local command
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ddt/ddt

    r237 r238  
    2121use strict;
    2222#use warnings;
    23 use version; our $VERSION = version->declare('0.9.5');
     23use version; our $VERSION = version->declare('0.9.6');
    2424
    2525use Getopt::Long qw(GetOptions);
     
    9999mkdir $FOLDER_GEN_DNS, 0755  if not -d $FOLDER_GEN_DNS;
    100100
    101 touch $COMPUTER_YAML if not -e $COMPUTER_YAML;
    102 
    103 my $COMPUTER_DB = ipamdb_load($COMPUTER_YAML);
    104 
    105101if (defined $cmd_db{$command}) {
    106102   $cmd_db{$command}->(@ARGV);
     
    130126
    131127sub ipamdb_load {
    132    my $database_file = shift;
    133 
    134    my $computer_db = YAML::Syck::LoadFile($database_file);
     128   my $database_yaml = shift;
     129
     130   touch $database_yaml if not -e $database_yaml;
     131   my $computer_db = YAML::Syck::LoadFile($database_yaml);
    135132
    136133   # add database version if not exist
     
    146143
    147144sub ipamdb_save {
    148    my ($database_file, $computer_db) = @_;
    149 
    150    my $dirdb = $database_file;
     145   my ($database_yaml, $computer_db) = @_;
     146
     147   my $dirdb = $database_yaml;
    151148      $dirdb =~ s{ / [^/]* $}{}xms;
    152149   mkdir "$dirdb", 0755 unless -d "$dirdb";
    153    YAML::Syck::DumpFile($database_file, $computer_db);
     150   YAML::Syck::DumpFile($database_yaml, $computer_db);
    154151
    155152   return $computer_db;
     
    161158
    162159sub control_exist_pool {
    163    my ($COMPUTER_DB, $pool) = @_;
    164 
    165    return exists $COMPUTER_DB->{'pool'}{$pool} ? 1 : 0;
     160   my ($computer_db, $pool) = @_;
     161
     162   return exists $computer_db->{'pool'}{$pool} ? 1 : 0;
    166163   }
    167164
     
    172169
    173170sub control_exist_domainset {
    174    my ($COMPUTER_DB, $domainset) = @_;
    175 
    176    return 1 if exists $COMPUTER_DB->{$domainset};
     171   my ($computer_db, $domainset) = @_;
     172
     173   return 1 if exists $computer_db->{$domainset};
    177174
    178175   print {*STDERR} "Error: domain set $domainset not found\n";
     
    186183
    187184sub control_exist_hostname {
    188    my ($COMPUTER_DB, $domainset, $hostname) = @_;
    189 
    190    if ($COMPUTER_DB->{$domainset} eq '') {
     185   my ($computer_db, $domainset, $hostname) = @_;
     186
     187   if ($computer_db->{$domainset} eq '') {
    191188      return 1;
    192189      }
    193190
    194    my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     191   my @domainsetdb = @{$computer_db->{$domainset}};
    195192
    196193   for my $value (@domainsetdb) {
     
    211208
    212209sub control_exist_mac {
    213    my ($COMPUTER_DB, $mac) = @_;
    214 
    215    for my $domainset_current (keys %{$COMPUTER_DB}) {
     210   my ($computer_db, $mac) = @_;
     211
     212   for my $domainset_current (keys %{$computer_db}) {
    216213      next if $domainset_current eq 'dset';
    217214      next if $domainset_current eq 'pool';
     
    220217      next if $domainset_current eq 'version';
    221218
    222       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     219      my @domainsetdb = @{$computer_db->{$domainset_current}};
    223220      for my $value (@domainsetdb) {
    224221         for my $id (keys %{$value}) {
     
    239236
    240237sub control_exist_ip {
    241    my ($COMPUTER_DB, $ip) = @_;
    242 
    243    for my $domainset_current (keys %{$COMPUTER_DB}) {
     238   my ($computer_db, $ip) = @_;
     239
     240   for my $domainset_current (keys %{$computer_db}) {
    244241      next if $domainset_current eq 'dset';
    245242      next if $domainset_current eq 'pool';
     
    248245      next if $domainset_current eq 'version';
    249246
    250       for my $value (@{$COMPUTER_DB->{$domainset_current}}) {
     247      for my $value (@{$computer_db->{$domainset_current}}) {
    251248         for my $id (keys %{$value}) {
    252249            #print "Erreur: cette adresse IP $ip existe déjà\n";
     
    256253      }
    257254
    258    for my $current_pool (keys %{$COMPUTER_DB->{'pool'}}) {
     255   for my $current_pool (keys %{$computer_db->{'pool'}}) {
    259256         #--- Cette partie pour tester les ip des pools est bonne ne plus la changer ---#
    260       my @T_pool_ip = @{ $COMPUTER_DB->{'pool'}{$current_pool}{'ip'}};
     257      my @T_pool_ip = @{ $computer_db->{'pool'}{$current_pool}{'ip'}};
    261258
    262259      for my $pool_ip (@T_pool_ip) {
     
    365362
    366363sub get_mac_from_hostname {
    367    my ($domainset, $hostname, $mac) = @_;
     364   my ($computer_db, $domainset, $hostname, $mac) = @_;
    368365
    369366   return $mac if $mac ne '';
     
    371368
    372369   LOOP_ON_COMPUTER:
    373    for my $computer (@{$COMPUTER_DB->{$domainset}}) {
     370   for my $computer (@{$computer_db->{$domainset}}) {
    374371      my ($mac_address, $attribute) = %{$computer};
    375372
     
    383380
    384381sub get_mac_from_ip {
    385    my ($domainset, $ip, $mac) = @_;
     382   my ($computer_db, $domainset, $ip, $mac) = @_;
    386383
    387384   return $mac if $mac ne '';
     
    389386
    390387   LOOP_ON_COMPUTER:
    391    for my $computer (@{$COMPUTER_DB->{$domainset}}) {
     388   for my $computer (@{$computer_db->{$domainset}}) {
    392389      my ($mac_address, $attribute) = %{$computer};
    393390
     
    402399
    403400sub get_computer_from_mac {
    404    my ($domainset, $mac) = @_;
     401   my ($computer_db, $domainset, $mac) = @_;
    405402
    406403   LOOP_ON_COMPUTER:
    407    for my $computer (@{$COMPUTER_DB->{$domainset}}) {
     404   for my $computer (@{$computer_db->{$domainset}}) {
    408405      my ($mac_address, $attribute) = %{$computer};
    409406
     
    424421
    425422sub add_alias {
    426    my ($hostname, $domainset, $alias) = @_;
    427 
    428    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
    429    control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    430 
    431    my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     423   my ($computer_db, $hostname, $domainset, $alias) = @_;
     424
     425   control_exist_domainset($computer_db, $domainset) or exit;
     426   control_exist_hostname($computer_db, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
     427
     428   my @domainsetdb = @{$computer_db->{$domainset}};
    432429   my $cpt=0;
    433430   for my $value (@domainsetdb) {
     
    437434            print  $value->{$id}->{'alias'};
    438435            $alias = $alias . ' ' . $value->{$id}->{'alias'};
    439             $COMPUTER_DB->{$domainset}[$cpt]{$id}{'alias'}        = $alias;
    440             $COMPUTER_DB->{$domainset}[$cpt]{$id}{'modify_time'}  = time;
    441             ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     436            $computer_db->{$domainset}[$cpt]{$id}{'alias'}        = $alias;
     437            $computer_db->{$domainset}[$cpt]{$id}{'modify_time'}  = time;
     438            ipamdb_save("$COMPUTER_YAML", $computer_db);
    442439            print "Update attribute alias [OK]\n";
    443440            exit;
     
    453450
    454451sub add_static {
    455    my ($hostname, $domainset, $ip, $mac, $comment) = @_;
     452   my ($computer_db, $hostname, $domainset, $ip, $mac, $comment) = @_;
    456453
    457454   $mac = normalize_mac_address($mac);
    458455   $comment = normalize_comment($comment);
    459    control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
     456   control_exist_hostname($computer_db, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    460457   control_syntax_mac_address($mac)                   or exit;
    461    control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
     458   control_exist_mac($computer_db, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
    462459   control_syntax_ip($ip)                             or exit;
    463    control_exist_ip($COMPUTER_DB, $ip)                or die "Error: IP address already exist in domain set attachement $domainset: $ip\n";
     460   control_exist_ip($computer_db, $ip)                or die "Error: IP address already exist in domain set attachement $domainset: $ip\n";
    464461   control_syntax_comment($comment)                   or exit;
    465462   my $timestamp = time;
    466    push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     463   push @{$computer_db->{$domainset}}, { $mac => {
    467464      'hostname'     => $hostname,
    468465      'ip'           => $ip,
     
    476473   print "Add the computer: $hostname, IP: $ip, MAC: $mac, Domain Set: $domainset\n";
    477474
    478    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     475   ipamdb_save("$COMPUTER_YAML", $computer_db);
    479476   }
    480477
     
    486483
    487484sub add_dhcp {
    488    my ($hostname, $domainset, $ip, $mac, $comment) = @_;
     485   my ($computer_db, $hostname, $domainset, $ip, $mac, $comment) = @_;
    489486
    490487   my $timestamp = time;
    491488   $mac = normalize_mac_address($mac);
    492489   $comment = normalize_comment($comment);
    493    control_exist_domainset($COMPUTER_DB, $domainset)  or exit;
    494    control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
     490   control_exist_domainset($computer_db, $domainset)  or exit;
     491   control_exist_hostname($computer_db, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    495492   control_syntax_mac_address($mac)                   or exit;
    496    control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
     493   control_exist_mac($computer_db, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
    497494   control_syntax_ip($ip)                             or exit;
    498    control_exist_ip($COMPUTER_DB, $ip)                or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
     495   control_exist_ip($computer_db, $ip)                or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
    499496   control_syntax_comment($comment)                   or exit;
    500497
    501    push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     498   push @{$computer_db->{$domainset}}, { $mac => {
    502499      'hostname'     => $hostname,
    503500      'ip'           => $ip,
     
    511508   print "Add the computer: $hostname, IP: $ip, MAC: $mac, Domain Set: $domainset\n";
    512509
    513    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     510   ipamdb_save("$COMPUTER_YAML", $computer_db);
    514511   }
    515512
     
    518515
    519516sub add_float {
    520    my ($pool, $domainset, $mac, $comment) = @_;
     517   my ($computer_db, $pool, $domainset, $mac, $comment) = @_;
    521518
    522519   my $timestamp = time;
    523520   $mac = normalize_mac_address($mac);
    524521   $comment = normalize_comment($comment);
    525    control_exist_domainset($COMPUTER_DB, $domainset)  or exit;
     522   control_exist_domainset($computer_db, $domainset)  or exit;
    526523   control_syntax_mac_address($mac)                   or exit;
    527    control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
    528    control_exist_pool($COMPUTER_DB, $pool)            or die "Error: The pool doesn't exists: $pool\n";
     524   control_exist_mac($computer_db, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
     525   control_exist_pool($computer_db, $pool)            or die "Error: The pool doesn't exists: $pool\n";
    529526   control_syntax_comment($comment)                   or exit;
    530    push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     527   push @{$computer_db->{$domainset}}, { $mac => {
    531528      'hostname'     => $pool,
    532529      'ip'           => $pool,
     
    539536   print "Add the computer in pool MAC: $mac, Domain Set: $domainset, Pool: $pool\n";
    540537
    541    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     538   ipamdb_save("$COMPUTER_YAML", $computer_db);
    542539   }
    543540
     
    564561      or $alias      eq '';
    565562
    566    add_alias($hostname, $domainset, $alias);
     563   my $computer_db = ipamdb_load($COMPUTER_YAML);
     564   add_alias($computer_db, $hostname, $domainset, $alias);
    567565   }
    568566
     
    591589      or $comment    eq '';
    592590
    593    add_dhcp($hostname, $domainset, $ip, $mac, $comment);
     591   my $computer_db = ipamdb_load($COMPUTER_YAML);
     592   add_dhcp($computer_db, $hostname, $domainset, $ip, $mac, $comment);
    594593   }
    595594
     
    616615      or $comment    eq '';
    617616
    618    add_float($pool, $domainset, $mac, $comment);
     617   my $computer_db = ipamdb_load($COMPUTER_YAML);
     618   add_float($computer_db, $pool, $domainset, $mac, $comment);
    619619   }
    620620
     
    643643      or $comment    eq '';
    644644
    645    add_static($hostname, $domainset, $ip, $mac, $comment);
     645   my $computer_db = ipamdb_load($COMPUTER_YAML);
     646   add_static($computer_db, $hostname, $domainset, $ip, $mac, $comment);
    646647   }
    647648
     
    669670      or $comment    eq '';
    670671
     672   my $computer_db = ipamdb_load($COMPUTER_YAML);
     673
    671674   $comment = normalize_comment($comment);
    672675   my $timestamp = time;
    673676
    674    control_exist_domainset($COMPUTER_DB, $domainset)           or exit;
    675    control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
     677   control_exist_domainset($computer_db, $domainset)           or exit;
     678   control_exist_hostname($computer_db, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    676679   control_syntax_ip($ip)                                      or exit;
    677    control_exist_ip($COMPUTER_DB, $ip)                         or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
     680   control_exist_ip($computer_db, $ip)                         or die "Error: IP address already exist in domain set attachement $domainset: $ip.\n";
    678681   control_syntax_comment($comment)                            or exit;
    679682
    680683   my $mac = join ':', 'FF', 'FF', map({sprintf("%02X", $_)} split(/\./, $ip));
    681684   control_syntax_mac_address($mac)             or exit;
    682    control_exist_mac($COMPUTER_DB, $mac)         or die "Error: Virtual Physical MAC address already exists: $mac\n";
    683 
    684    push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     685   control_exist_mac($computer_db, $mac)         or die "Error: Virtual Physical MAC address already exists: $mac\n";
     686
     687   push @{$computer_db->{$domainset}}, { $mac => {
    685688      'hostname'     => $hostname,
    686689      'ip'           => $ip,
     
    693696   print "Add the virtual computer: $hostname, IP: $ip, Domain Set: $domainset\n";
    694697
    695    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     698   ipamdb_save("$COMPUTER_YAML", $computer_db);
    696699   }
    697700
     
    710713   my ($hostname, $domainset, $ip, $mac) = @_;
    711714
     715   my $computer_db = ipamdb_load($COMPUTER_YAML);
     716
    712717   $mac = normalize_mac_address($mac);
    713    control_exist_domainset($COMPUTER_DB, $domainset)  or exit;
     718   control_exist_domainset($computer_db, $domainset)  or exit;
    714719   control_syntax_mac_address($mac)                   or exit;
    715    control_exist_mac($COMPUTER_DB, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
     720   control_exist_mac($computer_db, $mac)              or die "Error: Physical MAC address already exists: $mac\n";
    716721   if ($ip ne '') {
    717722      control_syntax_ip($ip) or exit;
    718       if ( control_exist_ip($COMPUTER_DB, $ip) == 1 ) {
     723      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    719724         print "Error: Unkown IP address: $ip\n";
    720725         exit;
    721726         }
    722       my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     727      my @domainsetdb = @{$computer_db->{$domainset}};
    723728      my $cpt = 0;
    724729      for my $value (@domainsetdb) {
     
    727732               my $host = $value->{$id};
    728733               $host->{'modify_time'} = time;
    729                $COMPUTER_DB->{$domainset}->[$cpt] = { $mac => $host };
    730                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     734               $computer_db->{$domainset}->[$cpt] = { $mac => $host };
     735               ipamdb_save("$COMPUTER_YAML", $computer_db);
    731736               print "Update [OK]\n";
    732737               print "Hostname: $host->{'hostname'}\n";
     
    742747      }
    743748   elsif ($hostname ne '') {
    744       if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 1 ) {
     749      if ( control_exist_hostname($computer_db, $domainset, $hostname) == 1 ) {
    745750         die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    746751         }
    747       my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     752      my @domainsetdb = @{$computer_db->{$domainset}};
    748753      my $cpt = 0;
    749754      for my $value (@domainsetdb) {
     
    752757               my $host = $value->{$id};
    753758               $host->{'modify_time'} = time;
    754                $COMPUTER_DB->{$domainset}->[$cpt] = { $mac => $host };
    755                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     759               $computer_db->{$domainset}->[$cpt] = { $mac => $host };
     760               ipamdb_save("$COMPUTER_YAML", $computer_db);
    756761               print "Update [OK]\n";
    757762               print "Hostname: $host->{'hostname'}\n";
     
    774779   my ($hostname, $domainset, $ip) = @_;
    775780
    776    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
    777    if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 1 ) {
     781   my $computer_db = ipamdb_load($COMPUTER_YAML);
     782
     783   control_exist_domainset($computer_db, $domainset) or exit;
     784   if ( control_exist_hostname($computer_db, $domainset, $hostname) == 1 ) {
    778785      die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    779786      }
    780787   control_syntax_ip($ip) or exit;
    781    control_exist_ip($COMPUTER_DB, $ip) or die "Error: IP address already exist in domain set attachement $domainset: $ip\n";
    782    my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     788   control_exist_ip($computer_db, $ip) or die "Error: IP address already exist in domain set attachement $domainset: $ip\n";
     789   my @domainsetdb = @{$computer_db->{$domainset}};
    783790   my $cpt = 0;
    784791   for my $value (@domainsetdb) {
     
    790797                  )
    791798               ) {
    792             $COMPUTER_DB->{$domainset}[$cpt]{$id}{'ip'} = $ip;
    793             $COMPUTER_DB->{$domainset}[$cpt]{$id}{'modify_time'} = time;
    794             ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     799            $computer_db->{$domainset}[$cpt]{$id}{'ip'} = $ip;
     800            $computer_db->{$domainset}[$cpt]{$id}{'modify_time'} = time;
     801            ipamdb_save("$COMPUTER_YAML", $computer_db);
    795802            print "Update [OK]\n";
    796803            print "Hostname: $hostname\n";
     
    819826   my ($hostname, $domainset, $ip) = @_;
    820827
    821    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
     828   my $computer_db = ipamdb_load($COMPUTER_YAML);
     829
     830   control_exist_domainset($computer_db, $domainset) or exit;
    822831   control_syntax_ip($ip)   or exit;
    823    if ( control_exist_ip($COMPUTER_DB, $ip) == 1 ) {
     832   if ( control_exist_ip($computer_db, $ip) == 1 ) {
    824833      print "Error: Unkown IP address: $ip\n";
    825834      exit;
    826835      }
    827    control_exist_hostname($COMPUTER_DB, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    828 
    829    my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     836   control_exist_hostname($computer_db, $domainset, $hostname) or die "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
     837
     838   my @domainsetdb = @{$computer_db->{$domainset}};
    830839   my $cpt = 0;
    831840   for my $value (@domainsetdb) {
    832841      for my $id (keys %{$value}) {
    833842         if ($value->{$id}->{'ip'} eq $ip) {
    834             $COMPUTER_DB->{$domainset}[$cpt]{$id}{'hostname'} = $hostname;
    835             $COMPUTER_DB->{$domainset}[$cpt]{$id}{'modify_time'} = time;
    836             ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     843            $computer_db->{$domainset}[$cpt]{$id}{'hostname'} = $hostname;
     844            $computer_db->{$domainset}[$cpt]{$id}{'modify_time'} = time;
     845            ipamdb_save("$COMPUTER_YAML", $computer_db);
    837846            print "Update [OK]\n";
    838847            print "Hostname: $hostname\n";
     
    942951   $comment = normalize_comment($comment);
    943952
    944    control_exist_domainset($COMPUTER_DB, $domainset)   or exit;
     953   my $computer_db = ipamdb_load($COMPUTER_YAML);
     954
     955   control_exist_domainset($computer_db, $domainset)   or exit;
    945956   control_syntax_mac_address($mac)                   or exit;
    946957   control_syntax_comment($comment)                   or exit;
    947958
    948    my @domainsetdb = @{$COMPUTER_DB->{$domainset}};
     959   my @domainsetdb = @{$computer_db->{$domainset}};
    949960   my $cpt = 0;
    950961   for my $value (@domainsetdb) {
    951962      for my $id (keys %{$value}) {
    952963         if ($id eq $mac) {
    953             my $host = $COMPUTER_DB->{$domainset}[$cpt]{$mac};
     964            my $host = $computer_db->{$domainset}[$cpt]{$mac};
    954965            $host->{'comment'}     = $comment;
    955966            $host->{'modify_time'} = time;
    956967
    957             ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     968            ipamdb_save("$COMPUTER_YAML", $computer_db);
    958969            exit;
    959970            }
     
    986997   $mac = normalize_mac_address($mac);
    987998
    988    control_exist_domainset($COMPUTER_DB, $domainset)   or exit;
     999   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1000
     1001   control_exist_domainset($computer_db, $domainset)   or exit;
    9891002   control_syntax_ip($ip)                             or exit;
    9901003   control_syntax_mac_address($mac)                   or exit;
    9911004
    9921005   LOOP_ON_DOMAINSET:
    993    for my $domainset_current (keys %{$COMPUTER_DB}) {
     1006   for my $domainset_current (keys %{$computer_db}) {
    9941007      next if $domainset_current eq 'dset';
    9951008      next if $domainset_current eq 'pool';
     
    9981011      next if $domainset_current eq 'version';
    9991012
    1000       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     1013      my @domainsetdb = @{$computer_db->{$domainset_current}};
    10011014      my $cpt_mac = 0;
    10021015      for my $value (@domainsetdb) {
    10031016         for my $id (keys %{$value}) {
    10041017            if ($id eq $mac) {
    1005                my $host = $COMPUTER_DB->{$domainset_current}[$cpt_mac]{$mac};
     1018               my $host = $computer_db->{$domainset_current}[$cpt_mac]{$mac};
    10061019               next LOOP_ON_DOMAINSET if $host->{'ip'} ne $ip;
    10071020
    10081021               $host->{'modify_time'} = time;
    1009                splice(@{$COMPUTER_DB->{$domainset_current}}, $cpt_mac => 1);
    1010                push @{$COMPUTER_DB->{$domainset}}, { $mac => $host };
    1011 
    1012                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1022               splice(@{$computer_db->{$domainset_current}}, $cpt_mac => 1);
     1023               push @{$computer_db->{$domainset}}, { $mac => $host };
     1024
     1025               ipamdb_save("$COMPUTER_YAML", $computer_db);
    10131026               exit;
    10141027               }
     
    10491062   $mac = normalize_mac_address($mac);
    10501063
     1064   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1065
    10511066   if ($tags !~ m/^ (?:\w+,)* \w+ $/xms) {
    10521067      die "Error: Bad format for tags (comma separated list): $tags\n";
     
    10551070   for my $tag (split/,/, $tags) {
    10561071      next if $tag eq 'universal';
    1057       die "Error: TAG doesn't exist in the database. Create it before with create_tag: $tag\n" if not exists $COMPUTER_DB->{'tag'}{$tag};
    1058       }
    1059 
    1060    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
    1061 
    1062    $mac = get_mac_from_ip($domainset, $ip, $mac)             if $ip ne '';
    1063    $mac = get_mac_from_hostname($domainset, $hostname, $mac) if $hostname ne '';
     1072      die "Error: TAG doesn't exist in the database. Create it before with create_tag: $tag\n" if not exists $computer_db->{'tag'}{$tag};
     1073      }
     1074
     1075   control_exist_domainset($computer_db, $domainset) or exit;
     1076
     1077   $mac = get_mac_from_ip($computer_db, $domainset, $ip, $mac)             if $ip ne '';
     1078   $mac = get_mac_from_hostname($computer_db, $domainset, $hostname, $mac) if $hostname ne '';
    10641079   control_syntax_mac_address($mac) or exit;
    10651080
    10661081   LOOP_ON_COMPUTER:
    1067    for my $computer (@{$COMPUTER_DB->{$domainset}}) {
     1082   for my $computer (@{$computer_db->{$domainset}}) {
    10681083      my ($mac_address, $attribute) = %{$computer};
    10691084
     
    10741089
    10751090      delete $attribute->{'tag'} if $tags eq 'universal';
    1076       ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1091      ipamdb_save("$COMPUTER_YAML", $computer_db);
    10771092      exit;
    10781093      }
     
    10921107   my ($hostname, $domainset, $ip) = @_;
    10931108
     1109   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1110
    10941111   if ($ip ne '') {
    10951112      control_syntax_ip($ip);
    1096       if ( control_exist_ip($COMPUTER_DB, $ip) == 1 ) {
     1113      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    10971114         print "Error: Unkown IP address: $ip\n";
    10981115         exit;
    10991116         }
    11001117
    1101       for my $domainset_current (keys %{$COMPUTER_DB}) {
     1118      for my $domainset_current (keys %{$computer_db}) {
    11021119         next if $domainset_current eq 'dset';
    11031120         next if $domainset_current eq 'pool';
     
    11061123         next if $domainset_current eq 'version';
    11071124
    1108          my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     1125         my @domainsetdb = @{$computer_db->{$domainset_current}};
    11091126         my $cpt_mac = 0;
    11101127         for my $value (@domainsetdb) {
     
    11131130               if ($value->{$id}->{'ip'} eq $ip) {
    11141131                  my $timestamp = time;
    1115                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1116                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'no';
    1117                   print "L'adresse IP: $ip a été désactivée. Valeur du champs enabled: [".$COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."]\n";
    1118                   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1132                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1133                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'no';
     1134                  print "L'adresse IP: $ip a été désactivée. Valeur du champs enabled: [".$computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."]\n";
     1135                  ipamdb_save("$COMPUTER_YAML", $computer_db);
    11191136                  exit;
    11201137                  }
     
    11251142      }
    11261143   else {
    1127       control_exist_domainset($COMPUTER_DB, $domainset);
    1128       if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 1 ) {
     1144      control_exist_domainset($computer_db, $domainset);
     1145      if ( control_exist_hostname($computer_db, $domainset, $hostname) == 1 ) {
    11291146         die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    11301147         }
    11311148
    11321149      my $cpt_mac = 0;
    1133       for my $value (@{$COMPUTER_DB->{$domainset}}) {
     1150      for my $value (@{$computer_db->{$domainset}}) {
    11341151         for my $id (keys %{$value}) {
    11351152            if (($value->{$id}->{'hostname'} eq $hostname) and ($value->{$id}->{'address_type'} ne 'pool-dhcp')) {
    11361153               my $timestamp = time;
    1137                $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1138                $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'enabled'} = 'no';
    1139                print "La machine $hostname (domaine: $domainset) a été désactivé du DHCP. Valeur du champs enabled: [".$COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'enabled'}."]\n";
    1140                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1154               $computer_db->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1155               $computer_db->{$domainset}[$cpt_mac]->{$id}->{'enabled'} = 'no';
     1156               print "La machine $hostname (domaine: $domainset) a été désactivé du DHCP. Valeur du champs enabled: [".$computer_db->{$domainset}[$cpt_mac]->{$id}->{'enabled'}."]\n";
     1157               ipamdb_save("$COMPUTER_YAML", $computer_db);
    11411158               exit;
    11421159               }
     
    11591176   my ($pool, $mac) = @_;
    11601177
     1178   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1179
    11611180   my $cpt_mac;
    1162    if ( control_exist_mac($COMPUTER_DB, $mac) == 1 ) {
     1181   if ( control_exist_mac($computer_db, $mac) == 1 ) {
    11631182      print "Error: Unkown physical MAC address: $mac\n";
    11641183      exit;
    11651184      }
    11661185
    1167    for my $domainset_current (keys %{$COMPUTER_DB}) {
     1186   for my $domainset_current (keys %{$computer_db}) {
    11681187      next if $domainset_current eq 'dset';
    11691188      next if $domainset_current eq 'pool';
     
    11721191      next if $domainset_current eq 'version';
    11731192
    1174       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     1193      my @domainsetdb = @{$computer_db->{$domainset_current}};
    11751194
    11761195      $cpt_mac=0;
     
    11791198            if ($id eq $mac) {
    11801199               if ($value->{$id}->{'ip'} eq $pool) {
    1181                   #splice(@{$COMPUTER_DB->($domainset_current)} , $cpt_mac => 1);
     1200                  #splice(@{$computer_db->($domainset_current)} , $cpt_mac => 1);
    11821201                  my $timestamp = time;
    1183                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1184                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'no';
    1185                   print  $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."\n";
    1186                   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1202                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1203                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'no';
     1204                  print  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."\n";
     1205                  ipamdb_save("$COMPUTER_YAML", $computer_db);
    11871206                  print "Désactivation de la machine $mac du pool $pool [OK]\n";
    11881207                  exit;
     
    12071226   my ($hostname, $domainset, $ip) = @_;
    12081227
    1209    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
     1228   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1229
     1230   control_exist_domainset($computer_db, $domainset) or exit;
    12101231   if ($ip ne '') {
    12111232      control_syntax_ip($ip);
    1212       if ( control_exist_ip($COMPUTER_DB, $ip) == 1 ) {
     1233      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    12131234         print "Error: Unkown IP address: $ip\n";
    12141235         exit;
    12151236         }
    12161237
    1217       for my $domainset_current (keys %{$COMPUTER_DB}) {
     1238      for my $domainset_current (keys %{$computer_db}) {
    12181239         next if $domainset_current eq 'dset';
    12191240         next if $domainset_current eq 'pool';
     
    12221243         next if $domainset_current eq 'version';
    12231244
    1224          my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     1245         my @domainsetdb = @{$computer_db->{$domainset_current}};
    12251246         my $cpt_mac=0;
    12261247         for my $value (@domainsetdb) {
     
    12281249               if ($value->{$id}->{'ip'} eq $ip) {
    12291250                  my $timestamp = time;
    1230                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1231                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
    1232                   print "L'adresse IP: $ip a été réactivée. Valeur du champs enabled: [".$COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."]\n";
    1233                   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1251                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1252                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
     1253                  print "L'adresse IP: $ip a été réactivée. Valeur du champs enabled: [".$computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'}."]\n";
     1254                  ipamdb_save("$COMPUTER_YAML", $computer_db);
    12341255                  exit;
    12351256                  }
     
    12401261      }
    12411262   else {
    1242       if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 1 ) {
     1263      if ( control_exist_hostname($computer_db, $domainset, $hostname) == 1 ) {
    12431264         die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    12441265         }
    12451266
    12461267      my $cpt_mac=0;
    1247       for my $value (@{$COMPUTER_DB->{$domainset}}) {
     1268      for my $value (@{$computer_db->{$domainset}}) {
    12481269         for my $id (keys %{$value}) {
    12491270            if (($value->{$id}->{'hostname'} eq $hostname) and ($value->{$id}->{'address_type'} ne 'pool-dhcp')) {
    12501271               my $timestamp = time;
    1251                $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1252                $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
    1253                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";
    1254                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1272               $computer_db->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1273               $computer_db->{$domainset}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
     1274               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";
     1275               ipamdb_save("$COMPUTER_YAML", $computer_db);
    12551276               exit;
    12561277               }
     
    12731294   my ($pool, $mac) = @_;
    12741295
     1296   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1297
    12751298   my $cpt_mac;
    1276    if ( control_exist_mac($COMPUTER_DB, $mac) == 1 ) {
     1299   if ( control_exist_mac($computer_db, $mac) == 1 ) {
    12771300      print "Adresse MAC $mac non trouvée.\n";
    12781301      exit;
    12791302      }
    12801303
    1281    for my $domainset_current (keys %{$COMPUTER_DB}) {
     1304   for my $domainset_current (keys %{$computer_db}) {
    12821305      next if $domainset_current eq 'dset';
    12831306      next if $domainset_current eq 'pool';
     
    12861309      next if $domainset_current eq 'version';
    12871310
    1288       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     1311      my @domainsetdb = @{$computer_db->{$domainset_current}};
    12891312
    12901313      $cpt_mac=0;
     
    12931316            if ($id eq $mac) {
    12941317               if ($value->{$id}->{'ip'} eq $pool) {
    1295                   #splice(@{$COMPUTER_DB->($domainset_current)} , $cpt_mac => 1);
     1318                  #splice(@{$computer_db->($domainset_current)} , $cpt_mac => 1);
    12961319                  my $timestamp = time;
    1297                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1298                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
    1299                   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1320                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1321                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'enabled'} = 'yes';
     1322                  ipamdb_save("$COMPUTER_YAML", $computer_db);
    13001323                  print "Réactivation de la machine $mac du pool $pool [OK]\n";
    13011324                  exit;
     
    14181441   my ($hostname, $domainset, $ip) = @_;
    14191442
    1420    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
     1443   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1444
     1445   control_exist_domainset($computer_db, $domainset) or exit;
    14211446   if ($ip ne '') {
    1422       if ( control_exist_ip($COMPUTER_DB, $ip) == 1 ) {
     1447      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    14231448         die "Error: Unkown IP address: $ip\n";
    14241449         }
    14251450      my $cpt_mac=0;
    1426       for my $value (@{$COMPUTER_DB->{$domainset}}) {
     1451      for my $value (@{$computer_db->{$domainset}}) {
    14271452         for my $id (keys %{$value}) {
    14281453            if ($value->{$id}->{'ip'} eq $ip) {
    14291454               my $timestamp = time;
    1430                splice(@{$COMPUTER_DB->{$domainset}}, $cpt_mac => 1);
     1455               splice(@{$computer_db->{$domainset}}, $cpt_mac => 1);
    14311456               print "La machine $ip a été supprimer du domaine $domainset\n";
    1432                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1457               ipamdb_save("$COMPUTER_YAML", $computer_db);
    14331458               exit;
    14341459               }
     
    14391464      }
    14401465   else {
    1441       if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 1 ) {
     1466      if ( control_exist_hostname($computer_db, $domainset, $hostname) == 1 ) {
    14421467         die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    14431468         }
    14441469      my $cpt_mac=0;
    1445       for my $value (@{$COMPUTER_DB->{$domainset}}) {
     1470      for my $value (@{$computer_db->{$domainset}}) {
    14461471         for my $id (keys %{$value}) {
    14471472            if (($value->{$id}->{'hostname'} eq $hostname) and ($value->{$id}->{'address_type'} ne 'pool-dhcp')) {
    14481473               my $timestamp = time;
    1449                splice(@{$COMPUTER_DB->{$domainset}}, $cpt_mac => 1);
     1474               splice(@{$computer_db->{$domainset}}, $cpt_mac => 1);
    14501475               print "La machine $hostname a été supprimer du domaine $domainset\n";
    1451                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1476               ipamdb_save("$COMPUTER_YAML", $computer_db);
    14521477               exit;
    14531478               }
     
    14721497   my ($pool, $mac) = @_;
    14731498
     1499   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1500
    14741501   my $cpt_mac;
    1475    if ( control_exist_mac($COMPUTER_DB, $mac) == 1 ) {
     1502   if ( control_exist_mac($computer_db, $mac) == 1 ) {
    14761503      print "Adresse MAC $mac non trouvée.\n";
    14771504      exit;
    14781505      }
    14791506
    1480    for my $domainset_current (keys %{$COMPUTER_DB}) {
     1507   for my $domainset_current (keys %{$computer_db}) {
    14811508      next if $domainset_current eq 'dset';
    14821509      next if $domainset_current eq 'pool';
     
    14851512      next if $domainset_current eq 'version';
    14861513
    1487       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     1514      my @domainsetdb = @{$computer_db->{$domainset_current}};
    14881515
    14891516      $cpt_mac=0;
     
    14931520            if ($id eq $mac) {
    14941521               if ($value->{$id}->{'ip'} eq $pool) {
    1495                   #splice(@{$COMPUTER_DB->($domainset_current)} , $cpt_mac => 1);
    1496                   splice(@{$COMPUTER_DB->{$domainset_current}}, $cpt_mac => 1);
    1497                   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1522                  #splice(@{$computer_db->($domainset_current)} , $cpt_mac => 1);
     1523                  splice(@{$computer_db->{$domainset_current}}, $cpt_mac => 1);
     1524                  ipamdb_save("$COMPUTER_YAML", $computer_db);
    14981525                  print "Suppression de la machine $mac du pool $pool [OK]\n";
    14991526                  exit;
     
    15811608   $comment = normalize_comment($comment);
    15821609
    1583    $COMPUTER_DB->{'dset'} ||= {};
    1584    die "Error: Domain Set already exists: $domainset\n" if exists $COMPUTER_DB->{'dset'}{$domainset};
     1610   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1611
     1612   $computer_db->{'dset'} ||= {};
     1613   die "Error: Domain Set already exists: $domainset\n" if exists $computer_db->{'dset'}{$domainset};
    15851614
    15861615   control_syntax_comment($comment)    or exit;
    15871616
    15881617   my $timestamp = time;
    1589    $COMPUTER_DB->{'dset'}{$domainset} = {
     1618   $computer_db->{'dset'}{$domainset} = {
    15901619      'dns_extension'   => $dns_extension,
    15911620      'comment'         => $comment,
     
    15931622      'modify_time'     => $timestamp,
    15941623      };
    1595    $COMPUTER_DB->{$domainset} ||= []; # Create empty Domain Set computer list by default
    1596    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1624   $computer_db->{$domainset} ||= []; # Create empty Domain Set computer list by default
     1625   ipamdb_save("$COMPUTER_YAML", $computer_db);
    15971626   }
    15981627
     
    16271656      or $ipaddress_pool   eq '';
    16281657
    1629    if ($COMPUTER_DB->{'pool'}) {
    1630       die "Error: Pool already exists: $pool\n" if exists $COMPUTER_DB->{'pool'}{$pool};
     1658   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1659
     1660   if ($computer_db->{'pool'}) {
     1661      die "Error: Pool already exists: $pool\n" if exists $computer_db->{'pool'}{$pool};
    16311662      }
    16321663
    16331664   #--- control if the domain's pool exist ---#
    1634    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
     1665   control_exist_domainset($computer_db, $domainset) or exit;
    16351666
    16361667   my @ip_list = ();
     
    16441675               my $ip_loc = "$ip1.$ip2.$ip3.$cpt";
    16451676               control_syntax_ip($ip_loc) or die "Error: Bad IP syntax: $ip_loc\n";
    1646                control_exist_ip($COMPUTER_DB, $ip_loc) or die "Error: IP address already exists: $ip_loc\n";
     1677               control_exist_ip($computer_db, $ip_loc) or die "Error: IP address already exists: $ip_loc\n";
    16471678               push @ip_list, $ip_loc;
    16481679               }
     
    16501681         else {
    16511682            control_syntax_ip($ip) or next;
    1652             if ( control_exist_ip($COMPUTER_DB, $ip) == 0 ) {
     1683            if ( control_exist_ip($computer_db, $ip) == 0 ) {
    16531684               print "L'adresse IP $ip existe déjà\n";
    16541685               next;
     
    16601691
    16611692   my $timestamp = time;
    1662    $COMPUTER_DB->{'pool'}{$pool} = {
     1693   $computer_db->{'pool'}{$pool} = {
    16631694      'ip'          => [@ip_list],
    16641695      'enabled'     => 'yes',
     
    16681699      'domain'      => $domainset,
    16691700      };
    1670    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1701   ipamdb_save("$COMPUTER_YAML", $computer_db);
    16711702   }
    16721703
     
    16821713      );
    16831714
     1715   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1716
    16841717   printf "%-17s %-17s %s\n", 'Pool', 'File', 'DNS-Domain' if not $no_header;
    16851718   LOOP_ON_PXE:
    1686    for my $pool ( keys %{$COMPUTER_DB->{'pool'}} ) {
     1719   for my $pool ( keys %{$computer_db->{'pool'}} ) {
    16871720
    16881721      printf "%-17s %-17s %s\n",
    16891722         $pool,
    1690          $COMPUTER_DB->{'pool'}{$pool}{'file'},
    1691          $COMPUTER_DB->{'pool'}{$pool}{'domain'},
     1723         $computer_db->{'pool'}{$pool}{'file'},
     1724         $computer_db->{'pool'}{$pool}{'domain'},
    16921725      }
    16931726   }
     
    17161749      or $comment          eq '';
    17171750
     1751   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1752
    17181753   $comment = normalize_comment($comment);
    17191754
    1720    $COMPUTER_DB->{'pxe'} ||= {};
    1721    die "Error: PXE config already exists: $pxe_config\n" if exists $COMPUTER_DB->{'pxe'}{$pxe_config};
     1755   $computer_db->{'pxe'} ||= {};
     1756   die "Error: PXE config already exists: $pxe_config\n" if exists $computer_db->{'pxe'}{$pxe_config};
    17221757
    17231758   control_syntax_ip($ip_next_server)  or die "Error: Bad IP syntax: $ip_next_server\n";
     
    17251760
    17261761   my $timestamp = time;
    1727    $COMPUTER_DB->{'pxe'}{$pxe_config} = {
     1762   $computer_db->{'pxe'}{$pxe_config} = {
    17281763      'ip_next_server'  => $ip_next_server,
    17291764      'filename'        => $filename,
     
    17321767      'modify_time'     => $timestamp,
    17331768      };
    1734    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1769   ipamdb_save("$COMPUTER_YAML", $computer_db);
    17351770   }
    17361771
     
    17501785      if $pxe_config eq '';
    17511786
    1752    $COMPUTER_DB->{'pxe'} ||= {};
    1753    die "Error: PXE config does not exist: $pxe_config\n" if not exists $COMPUTER_DB->{'pxe'}{$pxe_config};
     1787   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1788
     1789   $computer_db->{'pxe'} ||= {};
     1790   die "Error: PXE config does not exist: $pxe_config\n" if not exists $computer_db->{'pxe'}{$pxe_config};
    17541791
    17551792   # Test if some computer use this config
    17561793   LOOP_ON_DOMAIN:
    1757    for my $domainset_current (keys %{$COMPUTER_DB}) {
     1794   for my $domainset_current (keys %{$computer_db}) {
    17581795      next if $domainset_current eq 'dset';
    17591796      next if $domainset_current eq 'pool';
     
    17631800
    17641801      LOOP_ON_COMPUTER:
    1765       for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
     1802      for my $computer (@{$computer_db->{$domainset_current}}) {
    17661803         my ($mac_address, $attribute) = %{$computer};
    17671804
     
    17731810      }
    17741811
    1775    delete $COMPUTER_DB->{'pxe'}{$pxe_config};
    1776    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1812   delete $computer_db->{'pxe'}{$pxe_config};
     1813   ipamdb_save("$COMPUTER_YAML", $computer_db);
    17771814   }
    17781815
     
    17881825      );
    17891826
     1827   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1828
    17901829   printf "%-12s %-13s %-30s %s\n", 'PXE-Config', 'Next-Server', 'Filename', 'Comment' if not $no_header;
    17911830   LOOP_ON_PXE:
    1792    for my $pxe_config ( keys %{$COMPUTER_DB->{'pxe'}} ) {
    1793       my $ip_next_server = $COMPUTER_DB->{'pxe'}{$pxe_config}{'ip_next_server'};
    1794       my $filename       = $COMPUTER_DB->{'pxe'}{$pxe_config}{'filename'};
    1795       my $comment        = $COMPUTER_DB->{'pxe'}{$pxe_config}{'comment'};
     1831   for my $pxe_config ( keys %{$computer_db->{'pxe'}} ) {
     1832      my $ip_next_server = $computer_db->{'pxe'}{$pxe_config}{'ip_next_server'};
     1833      my $filename       = $computer_db->{'pxe'}{$pxe_config}{'filename'};
     1834      my $comment        = $computer_db->{'pxe'}{$pxe_config}{'comment'};
    17961835
    17971836      printf "%-12s %-13s %-30s %s\n", $pxe_config, $ip_next_server, $filename, $comment;
     
    18251864      and $ip        ne '';
    18261865
    1827    die "Error: PXE config not exists: $pxe_config\n" if not exists $COMPUTER_DB->{'pxe'}{$pxe_config};
    1828 
    1829    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
     1866   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1867
     1868   die "Error: PXE config not exists: $pxe_config\n" if not exists $computer_db->{'pxe'}{$pxe_config};
     1869
     1870   control_exist_domainset($computer_db, $domainset) or exit;
    18301871   if ($ip ne '') {
    18311872      control_syntax_ip($ip);
    1832       if ( control_exist_ip($COMPUTER_DB, $ip) == 1 ) {
     1873      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    18331874         die "Error: Unkown IP address: $ip\n";
    18341875         }
    18351876
    1836       for my $domainset_current (keys %{$COMPUTER_DB}) {
     1877      for my $domainset_current (keys %{$computer_db}) {
    18371878         next if $domainset_current eq 'dset';
    18381879         next if $domainset_current eq 'pool';
     
    18421883
    18431884         my $cpt_mac = 0;
    1844          for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
     1885         for my $computer (@{$computer_db->{$domainset_current}}) {
    18451886            for my $id (keys %{$computer}) {
    18461887               if ($computer->{$id}->{'ip'} eq $ip) {
    18471888                  my $timestamp = time;
    1848                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1849                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'}  = $pxe_config;
     1889                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1890                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'}  = $pxe_config;
    18501891                  print "IP Address: $ip, PXE enabled in config: $pxe_config\n";
    1851                   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1892                  ipamdb_save("$COMPUTER_YAML", $computer_db);
    18521893                  exit;
    18531894                  }
     
    18581899      }
    18591900   else {
    1860       if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 1 ) {
     1901      if ( control_exist_hostname($computer_db, $domainset, $hostname) == 1 ) {
    18611902         die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    18621903         }
    18631904
    18641905      my $cpt_mac = 0;
    1865       for my $value (@{$COMPUTER_DB->{$domainset}}) {
     1906      for my $value (@{$computer_db->{$domainset}}) {
    18661907         for my $id (keys %{$value}) {
    18671908            if (($value->{$id}->{'hostname'} eq $hostname) and ($value->{$id}->{'address_type'} ne 'pool-dhcp')) {
    18681909               my $timestamp = time;
    1869                $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1870                $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'}  = $pxe_config;
     1910               $computer_db->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1911               $computer_db->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'}  = $pxe_config;
    18711912               print "Host $hostname ($domainset), PXE enabled in config: $pxe_config\n";
    1872                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1913               ipamdb_save("$COMPUTER_YAML", $computer_db);
    18731914               exit;
    18741915               }
     
    19071948      and $ip        ne '';
    19081949
    1909    control_exist_domainset($COMPUTER_DB, $domainset) or exit;
     1950   my $computer_db = ipamdb_load($COMPUTER_YAML);
     1951
     1952   control_exist_domainset($computer_db, $domainset) or exit;
    19101953   if ($ip ne '') {
    19111954      control_syntax_ip($ip);
    1912       if ( control_exist_ip($COMPUTER_DB, $ip) == 1 ) {
     1955      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    19131956         die "Error: Unkown IP address: $ip\n";
    19141957         }
    19151958
    1916       for my $domainset_current (keys %{$COMPUTER_DB}) {
     1959      for my $domainset_current (keys %{$computer_db}) {
    19171960         next if $domainset_current eq 'dset';
    19181961         next if $domainset_current eq 'pool';
     
    19221965
    19231966         my $cpt_mac = 0;
    1924          for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
     1967         for my $computer (@{$computer_db->{$domainset_current}}) {
    19251968            for my $id (keys %{$computer}) {
    19261969               if ($computer->{$id}->{'ip'} eq $ip) {
    1927                   next if not exists $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
    1928 
    1929                   my $pxe_config = $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
     1970                  next if not exists $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
     1971
     1972                  my $pxe_config = $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
    19301973                  my $timestamp  = time;
    1931                   $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1932                   delete $COMPUTER_DB->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
     1974                  $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1975                  delete $computer_db->{$domainset_current}[$cpt_mac]->{$id}->{'pxe_config'};
    19331976                  print "IP Address: $ip, PXE disable from config: $pxe_config\n";
    1934                   ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     1977                  ipamdb_save("$COMPUTER_YAML", $computer_db);
    19351978                  exit;
    19361979                  }
     
    19411984      }
    19421985   else {
    1943       if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 1 ) {
     1986      if ( control_exist_hostname($computer_db, $domainset, $hostname) == 1 ) {
    19441987         die "Error: Unkown host: $hostname, in domain set: $domainset\n";
    19451988         }
    19461989
    19471990      my $cpt_mac = 0;
    1948       for my $value (@{$COMPUTER_DB->{$domainset}}) {
     1991      for my $value (@{$computer_db->{$domainset}}) {
    19491992         for my $id (keys %{$value}) {
    19501993            if (($value->{$id}->{'hostname'} eq $hostname) and ($value->{$id}->{'address_type'} ne 'pool-dhcp')) {
    19511994               next if not exists $value->{$id}->{'pxe_config'};
    19521995
    1953                my $pxe_config = $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'};
     1996               my $pxe_config = $computer_db->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'};
    19541997               my $timestamp  = time;
    1955                $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
    1956                delete $COMPUTER_DB->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'};
     1998               $computer_db->{$domainset}[$cpt_mac]->{$id}->{'modify_time'} = $timestamp;
     1999               delete $computer_db->{$domainset}[$cpt_mac]->{$id}->{'pxe_config'};
    19572000               print "Host $hostname ($domainset), PXE disable from config: $pxe_config\n";
    1958                ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     2001               ipamdb_save("$COMPUTER_YAML", $computer_db);
    19592002               exit;
    19602003               }
     
    19882031      or $comment eq '';
    19892032
     2033   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2034
    19902035   $comment = normalize_comment($comment);
    19912036
    1992    $COMPUTER_DB->{'tag'} ||= {};
    1993    die "Error: TAG already exists: $tag\n" if exists $COMPUTER_DB->{'tag'}{$tag};
     2037   $computer_db->{'tag'} ||= {};
     2038   die "Error: TAG already exists: $tag\n" if exists $computer_db->{'tag'}{$tag};
    19942039
    19952040   die "Error: TAG 'universal' is intrinsic. It's not possible to create it.\n" if $tag eq 'universal';
     
    20022047
    20032048   my $timestamp = time;
    2004    $COMPUTER_DB->{'tag'}{$tag} = {
     2049   $computer_db->{'tag'}{$tag} = {
    20052050      'comment'         => $comment,
    20062051      'create_time'     => $timestamp,
    20072052      'modify_time'     => $timestamp,
    20082053      };
    2009    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     2054   ipamdb_save("$COMPUTER_YAML", $computer_db);
    20102055   }
    20112056
     
    20252070      if $tag eq '';
    20262071
    2027    $COMPUTER_DB->{'tag'} ||= {};
    2028    die "Error: TAG does not exist: $tag\n" if not exists $COMPUTER_DB->{'tag'}{$tag};
     2072   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2073
     2074   $computer_db->{'tag'} ||= {};
     2075   die "Error: TAG does not exist: $tag\n" if not exists $computer_db->{'tag'}{$tag};
    20292076
    20302077   # Test if some computer use this config
    20312078   LOOP_ON_DOMAIN:
    2032    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2079   for my $domainset_current (keys %{$computer_db}) {
    20332080      next if $domainset_current eq 'dset';
    20342081      next if $domainset_current eq 'pool';
     
    20382085
    20392086      LOOP_ON_COMPUTER:
    2040       for my $computer (@{$COMPUTER_DB->{$domainset_current}}) {
     2087      for my $computer (@{$computer_db->{$domainset_current}}) {
    20412088         my ($mac_address, $attribute) = %{$computer};
    20422089
     
    20482095      }
    20492096
    2050    delete $COMPUTER_DB->{'tag'}{$tag};
    2051    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     2097   delete $computer_db->{'tag'}{$tag};
     2098   ipamdb_save("$COMPUTER_YAML", $computer_db);
    20522099   }
    20532100
     
    20632110      );
    20642111
     2112   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2113
    20652114   printf "%-12s %s\n", 'TAG', 'Comment' if not $no_header;
    20662115   LOOP_ON_TAG:
    2067    for my $tag ( keys %{$COMPUTER_DB->{'tag'}} ) {
    2068       my $comment = $COMPUTER_DB->{'tag'}{$tag}{'comment'};
     2116   for my $tag ( keys %{$computer_db->{'tag'}} ) {
     2117      my $comment = $computer_db->{'tag'}{$tag}{'comment'};
    20692118
    20702119      printf "%-12s %s\n", $tag, $comment;
     
    20792128   my $flag_change;
    20802129
     2130   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2131
    20812132   LOOP_ON_DOMAIN:
    2082    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2133   for my $domainset_current (keys %{$computer_db}) {
    20832134      next if $domainset_current eq 'dset';
    20842135      next if $domainset_current eq 'pool';
     
    20872138      next if $domainset_current eq 'version';
    20882139
    2089       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2140      my @domainsetdb = @{$computer_db->{$domainset_current}};
    20902141
    20912142      LOOP_ON_COMPUTER:
     
    21112162   print "# FLAG :$flag_change\n";
    21122163
    2113    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB) if $flag_change;
     2164   ipamdb_save("$COMPUTER_YAML", $computer_db) if $flag_change;
    21142165   }
    21152166
     
    21182169sub cmd_show_domainset {
    21192170
     2171   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2172
    21202173   LOOP_ON_DOMAIN:
    2121    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2174   for my $domainset_current (keys %{$computer_db}) {
    21222175      next if $domainset_current eq 'dset';
    21232176      next if $domainset_current eq 'pool';
     
    21472200   $mac = normalize_mac_address($mac);
    21482201
     2202   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2203
    21492204   control_syntax_mac_address($mac) or exit;
    21502205
    21512206   LOOP_ON_DOMAIN:
    2152    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2207   for my $domainset_current (keys %{$computer_db}) {
    21532208      next if $domainset_current eq 'dset';
    21542209      next if $domainset_current eq 'pool';
     
    21572212      next if $domainset_current eq 'version';
    21582213
    2159       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2214      my @domainsetdb = @{$computer_db->{$domainset_current}};
    21602215
    21612216      LOOP_ON_COMPUTER:
     
    22002255   my %ipdb = ();
    22012256
     2257   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2258
    22022259   LOOP_ON_DOMAIN:
    2203    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2260   for my $domainset_current (keys %{$computer_db}) {
    22042261      next if $domainset_current eq 'dset';
    22052262      next if $domainset_current eq 'pool';
     
    22172274         'Date',
    22182275         'Comment';
    2219       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2276      my @domainsetdb = @{$computer_db->{$domainset_current}};
    22202277
    22212278      LOOP_ON_COMPUTER:
     
    23032360   backup_database();
    23042361
     2362   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2363
    23052364   my %file_pool;
    23062365
    2307    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2366   for my $domainset_current (keys %{$computer_db}) {
    23082367      next if $domainset_current eq 'dset';
    23092368      next if $domainset_current eq 'pool';
     
    23132372
    23142373      open FILE_VLAN, '>', "$FOLDER_GEN_DHCP/$domainset_current";
    2315       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2374      my @domainsetdb = @{$computer_db->{$domainset_current}};
    23162375      for my $value (@domainsetdb) {
    23172376         ALL_MAC_ADDRESS:
     
    23382397                  if (exists $value->{$mac_addres}{'pxe_config'}) {
    23392398                     my $pxe_config     = $value->{$mac_addres}{'pxe_config'};
    2340                      my $ip_next_server = $COMPUTER_DB->{'pxe'}{$pxe_config}{'ip_next_server'};
    2341                      my $filename       = $COMPUTER_DB->{'pxe'}{$pxe_config}{'filename'};
     2399                     my $ip_next_server = $computer_db->{'pxe'}{$pxe_config}{'ip_next_server'};
     2400                     my $filename       = $computer_db->{'pxe'}{$pxe_config}{'filename'};
    23422401                     $buffer .= "   next-server $ip_next_server;\n";
    23432402                     $buffer .= "   filename \"$filename\";\n";
     
    23642423            elsif ($address_type eq 'pool-dhcp') {
    23652424               #--- Génère les fichiers pool dhcp ---#
    2366                for my $current_pool (keys %{$COMPUTER_DB->{'pool'}}) {
     2425               for my $current_pool (keys %{$computer_db->{'pool'}}) {
    23672426                  next if $current_pool ne $ip;
    23682427
     
    23792438                     }
    23802439
    2381                   my $current_pool_file_name = $COMPUTER_DB->{'pool'}{$current_pool}{'file'};
     2440                  my $current_pool_file_name = $computer_db->{'pool'}{$current_pool}{'file'};
    23822441
    23832442                  $file_pool{$current_pool_file_name} ||= [];
     
    24092468   my $pool_domain;
    24102469
    2411    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2470   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2471
     2472   for my $domainset_current (keys %{$computer_db}) {
    24122473      next if $domainset_current eq 'dset';
    24132474      next if $domainset_current eq 'pool';
     
    24182479      if ($domainset_current eq 'pool') {
    24192480         #next;
    2420          for my $value (@{$COMPUTER_DB->{$domainset_current}}) {
     2481         for my $value (@{$computer_db->{$domainset_current}}) {
    24212482            for my $pool_name (keys %{$value}) {
    24222483               $pool_domain = $value->{$pool_name}->{'domain'}."\n";
     
    24432504         open ( FILE_FORWARD_DNS, ">> $FOLDER_GEN_DNS/db.$domainset_current.fwd");
    24442505         open ( FILE_REVERSE_DNS, ">> $FOLDER_GEN_DNS/db.$domainset_current.rev");
    2445          my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2506         my @domainsetdb = @{$computer_db->{$domainset_current}};
    24462507         for my $value (@domainsetdb) {
    24472508            for my $id (keys %{$value}) {
     
    24572518
    24582519               my $dns_domain = $domainset_current;
    2459                if (exists $COMPUTER_DB->{'dset'}{$domainset_current}) {
    2460                   $dns_domain = $COMPUTER_DB->{'dset'}{$domainset_current}{'dns_extension'};
     2520               if (exists $computer_db->{'dset'}{$domainset_current}) {
     2521                  $dns_domain = $computer_db->{'dset'}{$domainset_current}{'dns_extension'};
    24612522                  }
    24622523               my @T_split = split(/\./ , $ip);
     
    25052566
    25062567sub cmd_check_dns {
     2568   my $computer_db = ipamdb_load($COMPUTER_YAML);
    25072569
    25082570   LOOP_ON_DOMAIN:
    2509    for my $domainset_current (keys %{$COMPUTER_DB}) {
     2571   for my $domainset_current (keys %{$computer_db}) {
    25102572      next if $domainset_current eq 'dset';
    25112573      next if $domainset_current eq 'pool';
     
    25142576      next if $domainset_current eq 'version';
    25152577
    2516       my @domainsetdb = @{$COMPUTER_DB->{$domainset_current}};
     2578      my @domainsetdb = @{$computer_db->{$domainset_current}};
    25172579
    25182580      LOOP_ON_COMPUTER:
     
    25522614         my ($hostname_fq, $ip) = ($1, $2);
    25532615         control_syntax_ip($ip) or next LOOP_ON_IP;
    2554          if (control_exist_ip($COMPUTER_DB, $ip) == 1) {
     2616         if (control_exist_ip($computer_db, $ip) == 1) {
    25552617            printf "Unkown IP: %015s / %s\n", $ip, $hostname_fq;
    25562618            next LOOP_ON_IP;
     
    25682630sub load_data_dhcp {
    25692631   my ($domainset, $input_file) = @_;
     2632
     2633   my $computer_db = ipamdb_load($COMPUTER_YAML);
    25702634
    25712635   my @T_mac;
     
    26152679         $cpt = 0;
    26162680
    2617          if ( control_exist_hostname($COMPUTER_DB, $domainset, $hostname) == 0 ) {
     2681         if ( control_exist_hostname($computer_db, $domainset, $hostname) == 0 ) {
    26182682            print "Error: Hostname already exist in domain set attachement $domainset: $hostname\n";
    26192683            next;
    26202684            }
    26212685         control_syntax_mac_address($mac) or next;
    2622          if ( control_exist_mac($COMPUTER_DB, $mac) == 0) {
     2686         if ( control_exist_mac($computer_db, $mac) == 0) {
    26232687            print "Error: Physical MAC address already exists: $mac\n";
    26242688            next;
     
    26262690
    26272691         control_syntax_ip($ip) or next;
    2628          if ( control_exist_ip($COMPUTER_DB, $ip) == 0 ) {
     2692         if ( control_exist_ip($computer_db, $ip) == 0 ) {
    26292693            print "Error: IP address already exists: $ip\n";
    26302694            next;
    26312695            }
    26322696         my $timestamp = time;
    2633          push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     2697         push @{$computer_db->{$domainset}}, { $mac => {
    26342698            'hostname'     => $hostname,
    26352699            'ip'           => $ip,
     
    26572721   close(FILE);
    26582722
     2723   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2724
    26592725   for my $ligne (@buffer) {
    26602726      #--
     
    26732739         my $mac = $T_mac[1].":".$T_mac[2].":".$T_mac[3].":".$T_mac[4].":".$T_mac[5].":".$T_mac[6];
    26742740         control_syntax_mac_address($mac) or next;
    2675          if (control_exist_mac($COMPUTER_DB, $mac) == 0) {
     2741         if (control_exist_mac($computer_db, $mac) == 0) {
    26762742            print "Error: Physical MAC address already exists: $mac\n";
    26772743            next;
     
    26792745
    26802746         #--- cette partie teste si le pool existe.
    2681          if (not exists $COMPUTER_DB->{'pool'}{$pool}) {
     2747         if (not exists $computer_db->{'pool'}{$pool}) {
    26822748            print "Error: Create pool with create_pool command before load database: $pool\n";
    26832749            exit;
    26842750            }
    26852751
    2686          if ($COMPUTER_DB->{'pool'}{'domain'} eq $domainset) {
     2752         if ($computer_db->{'pool'}{'domain'} eq $domainset) {
    26872753            my $timestamp = time;
    2688             push @{$COMPUTER_DB->{$domainset}}, { $mac => {
     2754            push @{$computer_db->{$domainset}}, { $mac => {
    26892755               'hostname'     => $pool,
    26902756               'ip'           => $pool,
     
    27082774   my ($domainset, $input_file, $type_file) = @_;
    27092775
    2710    #$COMPUTER_DB
     2776   my $computer_db = ipamdb_load($COMPUTER_YAML);
     2777
     2778   #$computer_db
    27112779   if ($type_file eq 'dhcp') {
    27122780      load_data_dhcp($domainset, $input_file);
     
    27172785      }
    27182786
    2719    ipamdb_save("$COMPUTER_YAML", $COMPUTER_DB);
     2787   ipamdb_save("$COMPUTER_YAML", $computer_db);
    27202788   }
    27212789
Note: See TracChangeset for help on using the changeset viewer.