Initial commit
[webservice-scaleway.git] / t / real.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use WebService::Scaleway;
6
7 use Test::More;
8
9 BEGIN {
10 plan skip_all => 't/api_key file missing' unless -f 't/api_key';
11 plan tests => 7;
12 }
13
14 open my $akf, '<', 't/api_key';
15 my $token = <$akf>;
16 chomp $token;
17 close $akf;
18 my $sw = WebService::Scaleway->new($token);
19
20 my $org = $sw->organizations;
21 my $user = $sw->user($org->users->[0]->{id});
22 note 'This token belongs to ', $user->fullname, ' <', $user->email, '>';
23
24 my $ip = $sw->create_ip($org);
25 note "Created new ip $ip with address ", $ip->address;
26 is $sw->ip($ip)->address, $ip->address, 'get_ip';
27 my @ips = $sw->ips;
28 ok grep ({$_->address eq $ip->address} @ips), 'list_ips';
29
30 my $vol = $sw->create_volume('testvol', $org, 'l_ssd', 50_000_000_000);
31 note "Created new volume $vol with name ", $vol->name;
32 is $sw->volume($vol)->name, $vol->name, 'get_volume';
33 my @vols = $sw->volumes;
34 ok grep ({$_->name eq $vol->name} @vols), 'list_volumes';
35
36 my ($debian) = grep { $_->name =~ /debian jessie/i } $sw->images;
37 my $srv = $sw->create_server('mysrv', $org, $debian, {1 => {%$vol}});
38 note "Created new server $srv with name ", $srv->name;
39 is $sw->server($srv)->name, $srv->name, 'get_server';
40 $srv->{name} = 'testsrv';
41 $sw->update_server($srv);
42 is $sw->server($srv)->name, $srv->name, 'update_server';
43 my @srvs = $sw->servers;
44 ok grep ({$_->name eq $srv->name} @srvs), 'list_servers';
45 note "This server can: ", join ' ', $sw->server_actions($srv);
46
47 ## Snapshots are quite expensive
48 #my $snp = $sw->create_snapshot('mysnap', $org, $vol);
49 #note "Created new snapshot $snp with name ", $snp->name;
50 #is $sw->snapshot($snp)->name, $snp->name, 'get_snapshot';
51 #$snp->{name} = 'testsnap';
52 #$sw->update_snapshot($snp);
53 #is $sw->snapshot($snp)->name, $snp->name, 'update_snapshot';
54
55 sleep 20;
56
57 $sw->delete_server($srv);
58 $sw->delete_ip($ip);
59 $sw->delete_volume($vol);
This page took 0.026987 seconds and 4 git commands to generate.