|
#!/usr/bin/env perl
use lib "$FindBin::Bin/lib" ; mock_lwp_useragent();
$Test::OpenStack::MetaAPI::UA_DISPLAY_OUTPUT = 1;
my $api = get_api_object( use_env => 0);
ok $api , "got one api object" or die ;
{
note "Testing servers" ;
mock_get_request(
application_json(json_for_servers()),
);
is [ $api ->servers()],
[
{ 'id' => '595bdd3d10d95bb1a570603015bceeee' ,
'links' => [
{ 'href' =>
'rel' => 'self'
},
{ 'href' =>
'rel' => 'bookmark'
}
],
'name' => 'server one'
},
{ 'id' => '433bef2eda384218df1f3fe032d3c6cc' ,
'links' => [
{ 'href' =>
'rel' => 'self'
},
{ 'href' =>
'rel' => 'bookmark'
}
],
'name' => 'server two'
},
{ 'id' => '8b6da0864b308971b13d03d6ccd348f5' ,
'links' => [
{ 'href' =>
'rel' => 'self'
},
{ 'href' =>
'rel' => 'bookmark'
}
],
'name' => 'server three'
}
],
"got three servers returned" ;
is $api ->servers( name => 'server two' ),
{ 'id' => '433bef2eda384218df1f3fe032d3c6cc' ,
'links' => [
{ 'href' =>
'rel' => 'self'
},
{ 'href' =>
'rel' => 'bookmark'
}
],
'name' => 'server two'
},
"api->servers( name => 'server two' )" ;
mock_get_request(
application_json(json_for_server()),
);
my $output = $api ->server_from_uid( '33748c23-38dd-4f70-b774-522fc69e7b67' );
is last_http_request(),
"last_http_request" ;
is $output , JSON::decode_json(json_for_server())->{server},
"get a server from uid" ;
}
done_testing;
sub json_for_server {
return <<'JSON';
{
"server": {
"OS-EXT-AZ:availability_zone": "UNKNOWN",
"OS-EXT-STS:power_state": 0,
"created": "2018-12-03T21:06:18Z",
"flavor": {
"disk": 1,
"ephemeral": 0,
"extra_specs": {},
"original_name": "m1.tiny",
"ram": 512,
"swap": 0,
"vcpus": 1
},
"id": "33748c23-38dd-4f70-b774-522fc69e7b67",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
{
"rel": "bookmark"
}
]
},
"status": "UNKNOWN",
"tenant_id": "project",
"user_id": "fake",
"links": [
{
"rel": "self"
},
{
"rel": "bookmark"
}
]
}
}
JSON
}
sub json_for_servers {
return <<'JSON';
{
"servers" : [
{
"name" : "server one",
"links" : [
{
"rel" : "self",
},
{
"rel" : "bookmark"
}
],
"id" : "595bdd3d10d95bb1a570603015bceeee"
},
{
"name" : "server two",
"id" : "433bef2eda384218df1f3fe032d3c6cc",
"links" : [
{
"rel" : "self",
},
{
"rel" : "bookmark",
}
]
},
{
"id" : "8b6da0864b308971b13d03d6ccd348f5",
"links" : [
{
"rel" : "self",
},
{
"rel" : "bookmark",
}
],
"name" : "server three"
}
]
}
JSON
}
|