use PVE::INotify;
use PVE::Tools;
+sub new {
+ my ($class, $conf) = @_;
+
+ return bless { conf => $conf }, $class;
+}
my $lookup_dns_conf = sub {
my ($conf) = @_;
};
sub set_dns {
- my ($class, $conf) = @_;
+ my ($self, $conf) = @_;
my ($searchdomains, $nameserver) = &$lookup_dns_conf($conf);
}
sub set_hostname {
- my ($class, $conf) = @_;
+ my ($self, $conf) = @_;
my $hostname = $conf->{'lxc.utsname'} || 'localhost';
}
sub setup_network {
- my ($class, $conf) = @_;
+ my ($self, $conf) = @_;
die "please implement this inside subclass"
}
sub setup_init {
- my ($class, $conf) = @_;
+ my ($self, $conf) = @_;
die "please implement this inside subclass"
}
};
sub set_user_password {
- my ($class, $conf, $user, $opt_password) = @_;
+ my ($self, $conf, $user, $opt_password) = @_;
my $rootfs = $conf->{'lxc.rootfs'};
}
sub pre_start_hook {
- my ($class, $conf) = @_;
+ my ($self, $conf) = @_;
- $class->setup_init($conf);
- $class->setup_network($conf);
- $class->set_hostname($conf);
- $class->set_dns($conf);
+ $self->setup_init($conf);
+ $self->setup_network($conf);
+ $self->set_hostname($conf);
+ $self->set_dns($conf);
# fixme: what else ?
}
sub post_create_hook {
- my ($class, $conf, $root_password) = @_;
+ my ($self, $conf, $root_password) = @_;
- $class->set_user_password($conf, 'root', $root_password);
- $class->setup_init($conf);
- $class->setup_network($conf);
- $class->set_hostname($conf);
- $class->set_dns($conf);
+ $self->set_user_password($conf, 'root', $root_password);
+ $self->setup_init($conf);
+ $self->setup_network($conf);
+ $self->set_hostname($conf);
+ $self->set_dns($conf);
# fixme: what else ?
}
use base qw(PVE::LXCSetup::Base);
+sub new {
+ my ($class, $conf) = @_;
+
+ my $rootfs = $conf->{'lxc.rootfs'};
+
+ my $version = PVE::Tools::file_read_firstline("$rootfs/etc/debian_version");
+
+ die "unable to read version info\n" if !defined($version);
+
+ die "unsupported debian version '$version'\n" if $version < 6;
+
+ my $self = { conf => $conf, version => $version };
+
+ return bless $self, $class;
+}
+
my $default_inittab = <<__EOD__;
# The default runlevel.
__EOD__
sub setup_init {
- my ($class, $conf) = @_;
+ my ($self, $conf) = @_;
my $rootfs = $conf->{'lxc.rootfs'};
}
sub setup_network {
- my ($class, $conf) = @_;
+ my ($self, $conf) = @_;
my $rootfs = $conf->{'lxc.rootfs'};