summaryrefslogtreecommitdiffstats
path: root/common/Wizcommon.pm
blob: e9eeaa09be098b61a22aece1f67763a4e99967b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/perl

# Copyright (C) 2003 Mandrakesoft
#
# Author: Florent Villard <warly@mandrakesoft.com>
#         A Ginies
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

package MDK::Wizard::Wizcommon;
use strict;
use standalone;
use common;
use services;
use MDK::Common;
use MDK::Wizard::IFCFG;

our @ISA = qw(Exporter);
our @EXPORT = qw(check_started check_starts_on_boot test_host_domain reload_or_restart);

sub check_dhcp {
    my ($wiz) = @_;
    $wiz->{net}->is_dhcp and return 'dhcp_warning';
}

sub new {
    my ($class) = @_;
    bless {
	    net => MDK::Wizard::IFCFG->new,
       }, $class;
}

sub check_started {
  my ($service) = @_;
  my ($isrunning) = services::is_service_running($service);
  return 'error_end' if !$isrunning;
}

sub reload_or_restart {
    my ($service) = @_;
    if (run_program::rooted($::prefix, '/bin/mountpoint', '-q', '/sys/fs/cgroup/systemd')) {
        run_program::rooted($::prefix, '/bin/systemctl', 'reload-or-restart', "$service.service");
    } else {
        run_program::rooted($::prefix, "/etc/rc.d/init.d/$service", "restart");
    }
}

sub check_starts_on_boot($$) {
    my ($in, $servicename) = @_;
    if (!services::starts_on_boot($servicename)) {
	my $start_service = $in->ask_yesorno(N("Start %s server on boot", $servicename), N("Would you like to start the %s service automatically on every boot?", $servicename), 1);
	if ($start_service) {
	    services::start_service_on_boot($servicename);
	}
    }
}

sub test_host_domain {
  my ($SHORTHOSTNAME, $DOMAINNAME) = @_;
  if ($SHORTHOSTNAME =~ /localhost/) {
    return 0, N("You need to readjust your hostname. 'localhost' is not a correct hostname for a DNS server. Hostname must be a FQDN: Fully Qualified Domain Name");
  }
  if (member($DOMAINNAME, qw(localdomain (none)), '')) {
    return 0, N("You need to readjust your domainname. For a DNS server you need a correct domainname, not equal to localdomain or none. Hostname must be a FQDN: Fully Qualified Domain Name. Launch drakconnect to adjust it.");
  }
  return 1;
}

1;