setup-ds.pl.in 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!@perlexec@
  2. # BEGIN COPYRIGHT BLOCK
  3. # Copyright (C) 2013 Red Hat, Inc.
  4. # All rights reserved.
  5. #
  6. # License: GPL (version 3 or any later version).
  7. # See LICENSE for details.
  8. # END COPYRIGHT BLOCK
  9. #
  10. use lib qw(@perlpath@);
  11. use strict;
  12. use Setup;
  13. use SetupLog;
  14. use Inf;
  15. use Resource;
  16. use DialogManager;
  17. use DSUtil;
  18. use DSCreate;
  19. use DSUpdate;
  20. my $res = new Resource("@propertydir@/setup-ds.res");
  21. my $setup = new Setup($res);
  22. if (!$setup->{silent}) {
  23. my $dialogmgr = new DialogManager($setup, $res, $TYPICAL);
  24. my @dialogs;
  25. if ($setup->{update}) {
  26. require DSUpdateDialogs;
  27. push @dialogs, DSUpdateDialogs->getDialogs();
  28. } else {
  29. require SetupDialogs;
  30. require DSDialogs;
  31. push @dialogs, SetupDialogs->getDialogs();
  32. push @dialogs, DSDialogs->getDialogs();
  33. }
  34. $dialogmgr->addDialog(@dialogs);
  35. my $rc = $dialogmgr->run();
  36. if ($rc) {
  37. $setup->doExit();
  38. }
  39. }
  40. my @errs;
  41. if ($setup->{update}) {
  42. @errs = updateDS($setup);
  43. } else {
  44. @errs = createDSInstance($setup->{inf});
  45. }
  46. if (@errs) {
  47. $setup->msg(@errs);
  48. if ($setup->{update}) {
  49. $setup->msg($FATAL, 'error_updating');
  50. } else {
  51. if($setup->{inf}->{slapd}->{ServerIdentifier} eq "admin"){
  52. # 'admin' is reserved for the admin server - log the correct error
  53. $setup->msg($FATAL, 'error_creating_dsinstance_adminid',
  54. $setup->{inf}->{slapd}->{ServerIdentifier});
  55. } else {
  56. $setup->msg($FATAL, 'error_creating_dsinstance',
  57. $setup->{inf}->{slapd}->{ServerIdentifier});
  58. }
  59. }
  60. $setup->doExit(1);
  61. } else {
  62. if ($setup->{update}) {
  63. $setup->msg('update_successful');
  64. } else {
  65. $setup->msg('created_dsinstance',
  66. $setup->{inf}->{slapd}->{ServerIdentifier});
  67. }
  68. }
  69. $setup->doExit(0);
  70. END {
  71. if ($setup and $setup->{keep}) {
  72. $setup->{inf}->write("__temp__");
  73. }
  74. }
  75. # emacs settings
  76. # Local Variables:
  77. # mode:perl
  78. # indent-tabs-mode: nil
  79. # tab-width: 4
  80. # End: