From 82fe04f3857e6ed518db4b7b4e1b75897d56f6a3 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Fri, 6 Mar 2026 12:16:08 +1100 Subject: [PATCH] InABox: add /imageid switch to provide a image id /snapshotid is also an alias. --- lib/Synergy/Reactor/InABox.pm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/Synergy/Reactor/InABox.pm b/lib/Synergy/Reactor/InABox.pm index 7f5acdce..4492f744 100644 --- a/lib/Synergy/Reactor/InABox.pm +++ b/lib/Synergy/Reactor/InABox.pm @@ -10,7 +10,7 @@ with 'Synergy::Role::Reactor::CommandPost', use namespace::clean; use Future::AsyncAwait; - +use Defined::KV; use Dobby::BoxManager; use Lingua::EN::Inflect qw(PL_N); use Synergy::CommandPost; @@ -186,11 +186,13 @@ command box => { region => 'datacentre', tag => 'label', ident => 'label', + imageid => 'image_id', + snapshotid => 'image_id', }); my %switches = map { my ($k, @rest) = @$_; $k => \@rest } @$switches; - for my $k (qw( version label size datacentre )) { + for my $k (qw( version label size datacentre image_id)) { next unless $switches{$k}; $switches{$k} = $switches{$k}[0]; } @@ -278,7 +280,7 @@ async sub handle_image ($self, $event, $switches) { return await $event->reply("Would create box from image '$snapshot->{name}' (created $ago)"); } -my %IS_CREATE_SWITCH = map {; $_ => 1 } qw( datacentre setup size nosetup ); +my %IS_CREATE_SWITCH = map {; $_ => 1 } qw( datacentre setup size nosetup image_id ); async sub handle_create ($self, $event, $switches) { my ($version, $label, $is_default_box) = $self->_determine_version_and_label($event, $switches); @@ -317,7 +319,8 @@ async sub handle_create ($self, $event, $switches) { extra_tags => [ 'fminabox' ], ssh_key_id => $self->ssh_key_id, - digitalocean_ssh_key_name => $self->digitalocean_ssh_key_name + digitalocean_ssh_key_name => $self->digitalocean_ssh_key_name, + defined_kv(image_id => $switches->{image_id}), }); my $boxman = $self->box_manager_for_event($event);