($cfg) = values %{ $cfg->[0] }; # FIX with ::JFDI or similar
my $Provision = $cfg->{Provision} or die "No <Provision> section";
- my $target = $Provision->{$name} or die "No section for <Provision> <$name>";
- my $type = $target->{type} || 'Rackspace';
+ my @hashes = grep $_, $Provision->{Default}, $Provision->{$name}
+ or die "No section for <Provision> <$name>, and no <default>";
+
+ my %hash = @hashes > 1 ? %{ merge( @hashes ) } : $hashes[0];
+
+ $hash{provision_backend} = delete $hash{type} || 'Rackspace';
+ $hash{pub_ssh} ||= "$ENV{HOME}/.ssh/id_rsa.pub";
- $hash{size} ||= 128;
- $hash{image} ||= 'meerkat'; # TODO, should this be determined on backend?
++ $hash{size} ||= 1; # id 1 - ram 256 MiB - disk 10 GiB
++ $hash{image} ||= 69; # id 69 - Ubuntu 10.10 (meerkat)
use Oyster::Provision;
my $server = Oyster::Provision->new(