# create /etc/pve/ha directory
PVE::Cluster::check_cfs_quorum();
mkdir("/etc/pve/ha");
-
+
my ($sid, $type, $name) = PVE::HA::Config::parse_sid(extract_param($param, 'sid'));
if (my $param_type = extract_param($param, 'type')) {
my ($sid, $type, $name) = PVE::HA::Config::parse_sid(extract_param($param, 'sid'));
- PVE::HA::Config::service_is_ha_managed($sid);
-
- PVE::HA::Config::lock_ha_domain(
- sub {
+ my $cfg = PVE::HA::Config::read_resources_config();
- my $cfg = PVE::HA::Config::read_resources_config();
+ # cannot use service_is_ha_managed as it ignores 'ignored' services,
+ # see bug report #1602
+ if (!defined($cfg->{ids}) || !defined($cfg->{ids}->{$sid})) {
+ die "cannot delete service '$sid', not HA managed!\n";
+ }
- delete $cfg->{ids}->{$sid};
+ PVE::HA::Config::lock_ha_domain(sub {
- PVE::HA::Config::write_resources_config($cfg)
+ $cfg = PVE::HA::Config::read_resources_config();
+ delete $cfg->{ids}->{$sid} or die "'$sid' not configured!\n";
+ PVE::HA::Config::write_resources_config($cfg);
- }, "delete resource failed");
+ }, "delete resource failed");
return undef;
}});
check_service_state($sid);
PVE::HA::Config::queue_crm_commands("migrate $sid $param->{node}");
-
+
return undef;
}});
check_service_state($sid);
PVE::HA::Config::queue_crm_commands("relocate $sid $param->{node}");
-
+
return undef;
}});