AWS-CLIWrapper
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
# -*- mode: cperl -*-
requires 'IPC::Cmd';
requires 'JSON', '2';
requires 'String::ShellQuote';
requires 'perl', '5.005';
requires 'version';
requires 'perl', '5.008001';
on configure => sub {
requires 'ExtUtils::MakeMaker', '6.30';
};
on test => sub {
requires 'Test::More';
requires 'File::Temp';
};
on develop => sub {
requires 'Test::Dependencies';
requires 'Test::Perl::Critic';
requires 'Test::LocalFunctions';
requires 'Test::UsedModules';
requires 'File::Temp';
};
lib/AWS/CLIWrapper.pm view on Meta::CPAN
our $Error = { Message => '', Code => '' };
our $true = do { bless \(my $dummy = 1), "AWS::CLIWrapper::Boolean" };
our $false = do { bless \(my $dummy = 0), "AWS::CLIWrapper::Boolean" };
my $AWSCLI_VERSION = undef;
my $DEFAULT_CATCH_ERROR_RETRIES = 3;
my $DEFAULT_CATCH_ERROR_MIN_DELAY = 3;
my $DEFAULT_CATCH_ERROR_MAX_DELAY = 10;
sub new {
my($class, %param) = @_;
my $region = $param{region};
my @opt = ();
for my $k (qw(region profile endpoint_url)) {
if (my $v = delete $param{$k}) {
push @opt, param2opt($k, $v);
}
}
t/bin/mock-aws view on Meta::CPAN
version() if $ARGV[0] eq "--version";
handle_die_with_error() if $ENV{AWS_CLIWRAPPER_TEST_DIE_WITH_ERROR};
my $cmd = shift @ARGV;
my $subcmd = shift @ARGV;
handle($cmd, $subcmd);
sub handle {
my ($cmd, $subcmd) = @_;
$subcmd =~ s/-/_/g;
my $handler = do {
no strict 'refs';
*{"main::${cmd}_$subcmd"}{CODE};
};
if ('CODE' eq ref $handler) {
$handler->();
exit 0;
}
else {
help();
}
}
sub handle_die_with_error {
my $counter_file = $ENV{AWS_CLIWRAPPER_TEST_ERROR_COUNTER_FILE};
return unless -f $counter_file;
open my $fh, "<", $counter_file or die "Cannot open $counter_file for read: $!";
my $counter = <$fh>;
close $fh;
# This logic is the opposite of usual retries: we throw an error for the counter
# number of times and then proceed normally after.
if ($counter-- > 0) {
open $fh, ">", $counter_file or die "Cannot open $counter_file for write: $!";
print $fh $counter;
close $fh;
die $ENV{AWS_CLIWRAPPER_TEST_DIE_WITH_ERROR};
}
}
sub version {
print "aws-cli/2.42.4242\n";
exit 0;
}
sub help {
die <<__END__;
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
aws: error: the following arguments are required: operation
__END__
}
sub ecs_list_clusters {
print <<__END__;
{
"clusterArns": [
"arn:aws:ecs:us-foo-1:123456789:cluster/foo",
"arn:aws:ecs:us-foo-1:123456789:cluster/bar",
"arn:aws:ecs:us-foo-1:123456789:cluster/baz"
]
}
__END__
}
xt/20_s3-sync.t view on Meta::CPAN
my $tmpdir = tempdir('s3-sync-dfdq"XXXXXX',
CLEANUP => $cleanup,
TMPDIR => 1,
);
test_sync("both source and dest dirs contains double quote",
's3://aws-cliwrapper-test/dir"double' => $tmpdir);
}
done_testing;
sub test_sync {
my($desc, $src, $dst) = @_;
my $res = $aws->s3('sync', [$src => $dst],
{
'delete' => $AWS::CLIWrapper::true,
});
ok($res, "$desc: $src => $dst");
my @downloaded = bsd_glob("$dst/*");
my $nd = scalar @downloaded;
xt/30_compat.t view on Meta::CPAN
use strict;
use Test::More;
use AWS::CLIWrapper;
my $aws = AWS::CLIWrapper->new;
my $res;
# >= 0.14.0 : Key, Values, Name
# < 0.14.0 : key, values, name
subtest 'Uppercase key, values, name' => sub {
$res = $aws->ec2('describe-instances', {
filters => [
{ name => 'tag:purpose', values => ["AC-TEST-2*"] },
{ name => 'instance-state-name', values => ['running'] },
],
});
ok($res, 'name/values');
is(scalar(@{$res->{Reservations}[0]{Instances}}), 1, 'name/values count');
$res = $aws->ec2('describe-instances', {
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.642 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )