fix: daemon nil pointer

This commit is contained in:
Julian Sommer
2026-03-26 11:59:44 +10:00
parent 06a8da8fb5
commit 90a3da2cc2
+12 -5
View File
@@ -419,11 +419,6 @@ func (d *Daemon) subscribeAll() error {
{"ec2.AuthorizeSecurityGroupEgress", d.handleEC2AuthorizeSecurityGroupEgress, "spinifex-workers"},
{"ec2.RevokeSecurityGroupIngress", d.handleEC2RevokeSecurityGroupIngress, "spinifex-workers"},
{"ec2.RevokeSecurityGroupEgress", d.handleEC2RevokeSecurityGroupEgress, "spinifex-workers"},
{"ec2.AllocateAddress", d.handleEC2AllocateAddress, "spinifex-workers"},
{"ec2.ReleaseAddress", d.handleEC2ReleaseAddress, "spinifex-workers"},
{"ec2.AssociateAddress", d.handleEC2AssociateAddress, "spinifex-workers"},
{"ec2.DisassociateAddress", d.handleEC2DisassociateAddress, "spinifex-workers"},
{"ec2.DescribeAddresses", d.handleEC2DescribeAddresses, "spinifex-workers"},
{"ec2.ModifyInstanceAttribute", d.handleEC2ModifyInstanceAttribute, "spinifex-workers"},
{"ec2.start", d.handleEC2StartStoppedInstance, "spinifex-workers"},
{"ec2.terminate", d.handleEC2TerminateStoppedInstance, "spinifex-workers"},
@@ -452,6 +447,18 @@ func (d *Daemon) subscribeAll() error {
{"spinifex.cluster.shutdown.infra", d.handleShutdownInfra, ""},
}
// EIP operations require external IPAM (pool mode). Only subscribe when available;
// without a subscriber the gateway returns a NATS timeout → clean error to the client.
if d.eipService != nil {
subs = append(subs,
natsSub{"ec2.AllocateAddress", d.handleEC2AllocateAddress, "spinifex-workers"},
natsSub{"ec2.ReleaseAddress", d.handleEC2ReleaseAddress, "spinifex-workers"},
natsSub{"ec2.AssociateAddress", d.handleEC2AssociateAddress, "spinifex-workers"},
natsSub{"ec2.DisassociateAddress", d.handleEC2DisassociateAddress, "spinifex-workers"},
natsSub{"ec2.DescribeAddresses", d.handleEC2DescribeAddresses, "spinifex-workers"},
)
}
for _, s := range subs {
var sub *nats.Subscription
var err error