Net-OpenStack-Client v0.1.4 Perl 5 v5.18.2 amd64-freebsd

Status
Pass
From
Slaven Rezić (SREZIC)
Dist
Net-OpenStack-Client v0.1.4
Platform
Perl 5 v5.18.2 amd64-freebsd
Date
2018-11-01 21:52:38
ID
731c0d02-de20-11e8-b7c4-f73542e4149c
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Stijn De Weirdt,

This is a computer-generated report for Net-OpenStack-Client-0.1.4
on perl 5.18.2, created by CPAN-Reporter-1.2018.

Thank you for uploading your work to CPAN.  Congratulations!
All tests were successful.

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

none provided

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make test':

PERL_DL_NONLAZY=1 "/usr/perl5.18.2/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-import.t ................. ok
t/00-pod.t .................... ok
t/api-convert.t ............... ok
t/api-magic.t ................. ok
t/author-pod-syntax.t ......... skipped: these tests are for testing by the author
t/client-api.t ................ ok
# [DEBUG] Parsed openrc file t/openrc_example: found variables OS_AUTH_URL,OS_IDENTITY_API_VERSION,OS_IMAGE_API_VERSION,OS_PASSWORD,OS_PROJECT_DOMAIN_NAME,OS_PROJECT_NAME,OS_USERNAME,OS_USER_DOMAIN_NAME
# [DEBUG] Parsed openrc file t/openrc_example: found variables OS_AUTH_URL,OS_IDENTITY_API_VERSION,OS_IMAGE_API_VERSION,OS_PASSWORD,OS_PROJECT_DOMAIN_NAME,OS_PROJECT_NAME,OS_USERNAME,OS_USER_DOMAIN_NAME
# [DEBUG] REST POST url http://controller:35357/v3/auth/tokens, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"Default"},"name":"admin","password":"ADMIN_PASS"}}},"scope":{"project":{"domain":{"name":"Default"},"name":"admin"}}}}
# [VERBOSE] Successful REST POST url http://controller:35357/v3/auth/tokens type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json,X-Subject-Token=mytoken
# [DEBUG] REST POST full response content {"token":{"catalog":[{"endpoints":[{"interface":"internal","url":"somewhere/s/internal"},{"interface":"admin","url":"somewhere/s/admin"}],"type":"super"},{"endpoints":[{"interface":"internal","url":"somewhere/d/internal"},{"interface":"public","url":"somewhere/d/public"}],"type":"duper"}],"user":{"domain":{"id":"default","name":"Default"},"id":"423f19a4ac1e4f48bbb4180756e6eb6c","name":"admin"}}}
# [VERBOSE] login succesful, obtained a token
# [VERBOSE] Added endpoint somewhere/s/admin for service super from catalog
# [VERBOSE] Added endpoint somewhere/d/internal for service duper from catalog
t/client-auth.t ............... ok
t/client-error.t .............. ok
# [DEBUG] Parsed openrc file t/openrc_example: found variables OS_AUTH_URL,OS_IDENTITY_API_VERSION,OS_IMAGE_API_VERSION,OS_PASSWORD,OS_PROJECT_DOMAIN_NAME,OS_PROJECT_NAME,OS_USERNAME,OS_USER_DOMAIN_NAME
# [DEBUG] REST POST url http://controller:35357/v3/auth/tokens, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"Default"},"name":"admin","password":"ADMIN_PASS"}}},"scope":{"project":{"domain":{"name":"Default"},"name":"admin"}}}}
# POST: no match cmd found for method POST. success=1 response
# [VERBOSE] Successful REST POST url http://controller:35357/v3/auth/tokens type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"success":1}
# [VERBOSE] login succesful, obtained a token
# [DEBUG] REST GET url http://controller:35357/v3/projects?name=tagprojectid, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?name=tagprojectid type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":2}]}
# [VERBOSE] ID 2 found for project with name tagprojectid
# [VERBOSE] Tagstore for tagprojectid intialised (id 2)
# [VERBOSE] fetching tagstore data cache
# [DEBUG] REST GET url http://controller:35357/v3/projects?parent_id=2, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?parent_id=2 type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":6,"name":"tagprojectid_5","tags":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70]},{"id":5,"name":"tagprojectid_4","tags":[101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169]}]}
# [INFO] flushed tagstore cache and counter
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [INFO] flushed tagstore cache and counter
# [VERBOSE] fetching tagstore data cache
# [DEBUG] REST GET url http://controller:35357/v3/projects?parent_id=2, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?parent_id=2 type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":6,"name":"tagprojectid_5","tags":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70]},{"id":5,"name":"tagprojectid_4","tags":[101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169]}]}
# [ERROR] No sane tag data to some message: undefined value
# [ERROR] No sane tag data to some message: only scalar allowed, got HASH.
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] using existing tagstore project 5 for atag
# [DEBUG] REST PUT url http://controller:35357/v3/projects/5/tags/atag, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/5/tags/atag type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added atag to tagstore
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] REST POST url http://controller:35357/v3/projects, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"project":{"name":"tagprojectid_6","parent_id":"2"}}
# [VERBOSE] Successful REST POST url http://controller:35357/v3/projects type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"project":{"id":9,"name":"tagprojectid_6"}}
# [DEBUG] REST PUT url http://controller:35357/v3/projects/9/tags/atag2, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/9/tags/atag2 type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added atag2 to tagstore
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] REST DELETE url http://controller:35357/v3/projects/5/tags/atag, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST DELETE full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# DELETE: no match cmd found for method DELETE. success=1 response
# [VERBOSE] Successful REST DELETE url http://controller:35357/v3/projects/5/tags/atag type application/json
# [DEBUG] REST DELETE full response headers Content-Type=application/json
# [DEBUG] REST DELETE full response content {"success":1}
# [VERBOSE] deleted atag from tagstore
# [DEBUG] REST GET url http://controller:35357/v3/projects?name=tagprojectempty, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?name=tagprojectempty type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":11111}]}
# [VERBOSE] ID 11111 found for project with name tagprojectempty
# [VERBOSE] Tagstore for tagprojectempty intialised (id 11111)
# [VERBOSE] fetching tagstore data cache
# [DEBUG] REST GET url http://controller:35357/v3/projects?parent_id=11111, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?parent_id=11111 type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":11113,"name":"tagprojectempty_2","tags":[]},{"id":11112,"name":"tagprojectempty_1","tags":[1]}]}
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] REST DELETE url http://controller:35357/v3/projects/11112/tags/1, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST DELETE full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# DELETE: no match cmd found for method DELETE. success=1 response
# [VERBOSE] Successful REST DELETE url http://controller:35357/v3/projects/11112/tags/1 type application/json
# [DEBUG] REST DELETE full response headers Content-Type=application/json
# [DEBUG] REST DELETE full response content {"success":1}
# [VERBOSE] deleted 1 from tagstore
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] Using first empty tagstore project id 11113
# [DEBUG] REST PUT url http://controller:35357/v3/projects/11113/tags/atagempty, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/11113/tags/atagempty type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added atagempty to tagstore
# bless( {
#   'cache' => {
#     'atagempty' => 11113
#   },
#   'client' => bless( {
#     'debugapi' => 1,
#     'log' => bless( {}, 'logger' ),
#     'rc' => bless( {
#       'code' => 204,
#       'content' => undef,
#       'headers' => {
#         'Content-Type' => 'application/json'
#       },
#       'method' => 'PUT',
#       'opts' => {
#         'useragent' => bless( {
#           'cookie_jar' => bless( {
#             'COOKIES' => {}
#           }, 'HTTP::Cookies' ),
#           'def_headers' => bless( {
#             'user-agent' => 'libwww-perl/6.35'
#           }, 'HTTP::Headers' ),
#           'handlers' => {
#             'request_prepare' => bless( [
#               {
#                 'callback' => sub { "DUMMY" },
#                 'line' => '/usr/perl5.18.2/lib/site_perl/5.18.2/LWP/UserAgent.pm:767',
#                 'owner' => 'LWP::UserAgent::cookie_jar'
#               }
#             ], 'HTTP::Config' ),
#             'response_done' => bless( [
#               {
#                 'callback' => sub { "DUMMY" },
#                 'line' => '/usr/perl5.18.2/lib/site_perl/5.18.2/LWP/UserAgent.pm:770',
#                 'owner' => 'LWP::UserAgent::cookie_jar'
#               }
#             ], 'HTTP::Config' ),
#             'response_header' => bless( [
#               {
#                 'callback' => sub { "DUMMY" },
#                 'line' => '/usr/perl5.18.2/lib/site_perl/5.18.2/LWP/UserAgent.pm:746',
#                 'm_media_type' => 'html',
#                 'owner' => 'LWP::UserAgent::parse_head'
#               }
#             ], 'HTTP::Config' )
#           },
#           'local_address' => undef,
#           'max_redirect' => 7,
#           'max_size' => undef,
#           'no_proxy' => [],
#           'protocols_allowed' => undef,
#           'protocols_forbidden' => undef,
#           'proxy' => {},
#           'requests_redirectable' => [
#             'GET',
#             'HEAD'
#           ],
#           'send_te' => 1,
#           'show_progress' => undef,
#           'ssl_opts' => {
#             'verify_hostname' => 1
#           },
#           'timeout' => 180,
#           'use_eval' => 1
#         }, 'LWP::UserAgent' )
#       },
#       'result' => '{"success":1}',
#       'url' => 'http://controller:35357/v3/projects/11113/tags/atagempty'
#     }, 'REST::Client' ),
#     'services' => {
#       'identity' => 'http://controller:35357/v3'
#     },
#     'token' => undef,
#     'versions' => {
#       'identity' => bless( {
#         'original' => 'v3',
#         'qv' => 1,
#         'version' => [
#           3,
#           0,
#           0
#         ]
#       }, 'version' )
#     }
#   }, 'Net::OpenStack::Client' ),
#   'counter' => 2,
#   'empty' => [
#     11112
#   ],
#   'id' => 11111,
#   'log' => $VAR1->{'client'},
#   'project' => 'tagprojectempty',
#   'services' => {},
#   'versions' => {}
# }, 'Net::OpenStack::Client::Identity::Tagstore' )
# mock_rest: current history [
#   'POST http://controller:35357/v3/auth/tokens {"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"Default"},"name":"admin","password":"ADMIN_PASS"}}},"scope":{"project":{"domain":{"name":"Default"},"name":"admin"}}}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/projects?name=tagprojectid  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/projects?parent_id=2  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/projects?parent_id=2  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/5/tags/atag {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'POST http://controller:35357/v3/projects {"project":{"name":"tagprojectid_6","parent_id":"2"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/9/tags/atag2 {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'DELETE http://controller:35357/v3/projects/5/tags/atag  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/projects?name=tagprojectempty  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/projects?parent_id=11111  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'DELETE http://controller:35357/v3/projects/11112/tags/1  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/11113/tags/atagempty {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json'
# ]
t/client-identity-tagstore.t .. ok
# sort result [
#   'c',
#   'f',
#   'a',
#   'b',
#   'e',
#   'd'
# ]
# [DEBUG] Parsed openrc file t/openrc_example: found variables OS_AUTH_URL,OS_IDENTITY_API_VERSION,OS_IMAGE_API_VERSION,OS_PASSWORD,OS_PROJECT_DOMAIN_NAME,OS_PROJECT_NAME,OS_USERNAME,OS_USER_DOMAIN_NAME
# [DEBUG] REST POST url http://controller:35357/v3/auth/tokens, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"Default"},"name":"admin","password":"ADMIN_PASS"}}},"scope":{"project":{"domain":{"name":"Default"},"name":"admin"}}}}
# POST: no match cmd found for method POST. success=1 response
# [VERBOSE] Successful REST POST url http://controller:35357/v3/auth/tokens type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"success":1}
# [VERBOSE] login succesful, obtained a token
# [DEBUG] REST GET url http://controller:35357/v3/users?name=existing, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/users?name=existing type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"users":[{"id":2}]}
# [VERBOSE] ID 2 found for user with name existing
# mock_rest: current history [
#   'GET http://controller:35357/v3/users?name=existing  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json'
# ]
# [DEBUG] REST GET url http://controller:35357/v3/users/, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/users/ type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"users":[{"description":"existing user (managed by)","email":"e@b","enabled":1,"id":1,"name":"existing"},{"description":"hooba (managed by)","email":"u@b","enabled":1,"id":2,"name":"update"},{"description":"existing user but not managed","email":"i@b","enabled":1,"id":3,"name":"ignore"},{"description":"existing user to be disabled (managed by)","email":"d@b","enabled":1,"id":4,"name":"disable"},{"description":"already disabled existing (managed by)","email":"d@b","enabled":0,"id":5,"name":"alreadydisabled"}]}
# [INFO] Creating users: anewuser
# [DEBUG] REST GET url http://controller:35357/v3/domains?name=somedomain, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/domains?name=somedomain type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"domains":[{"id":"dom123","name":"somedomain"}]}
# [VERBOSE] ID dom123 found for domain with name somedomain
# [DEBUG] REST POST url http://controller:35357/v3/users/, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"user":{"description":"new user","domain_id":"dom123","email":"a@b","enabled":true,"name":"anewuser"}}
# [VERBOSE] Successful REST POST url http://controller:35357/v3/users/ type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"user":{"id":123}}
# [VERBOSE] sync: created user anewuser
# [INFO] Possibly updating existing users: existing update
# [DEBUG] REST PATCH url http://controller:35357/v3/users/2, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PATCH full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PATCH full body {"user":{"description":"to be updated (managed by)"}}
# [VERBOSE] Successful REST PATCH url http://controller:35357/v3/users/2 type application/json
# [DEBUG] REST PATCH full response headers Content-Type=application/json
# [DEBUG] REST PATCH full response content {"user":{"id":2}}
# [VERBOSE] sync: updated user update
# [INFO] Updated existing users: update
# [INFO] Disabling existing users: alreadydisabled disable
# [VERBOSE] Not disabling already disabled user alreadydisabled (id 5)
# [DEBUG] REST PATCH url http://controller:35357/v3/users/4, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PATCH full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PATCH full body {"user":{"enabled":false}}
# [VERBOSE] Successful REST PATCH url http://controller:35357/v3/users/4 type application/json
# [DEBUG] REST PATCH full response headers Content-Type=application/json
# [DEBUG] REST PATCH full response content {"user":{"id":4}}
# [VERBOSE] sync: deleted user disable
# sync result {
#   'create' => [
#     [
#       'anewuser',
#       {
#         'id' => 123
#       }
#     ]
#   ],
#   'delete' => [
#     [
#       'disable',
#       {
#         'id' => 4
#       }
#     ]
#   ],
#   'update' => [
#     [
#       'update',
#       {
#         'id' => 2
#       }
#     ]
#   ]
# }
# mock_rest: current history [
#   'GET http://controller:35357/v3/users/  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/domains?name=somedomain  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'POST http://controller:35357/v3/users/ {"user":{"description":"new user","domain_id":"dom123","email":"a@b","enabled":true,"name":"anewuser"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PATCH http://controller:35357/v3/users/2 {"user":{"description":"to be updated (managed by)"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PATCH http://controller:35357/v3/users/4 {"user":{"enabled":false}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json'
# ]
# [DEBUG] REST GET url http://controller:35357/v3/projects?name=hoopla, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?name=hoopla type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":2}]}
# [VERBOSE] Found one tagstore project hoopla id 2
# [DEBUG] REST GET url http://controller:35357/v3/projects?name=hoopla, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?name=hoopla type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":2}]}
# [VERBOSE] ID 2 found for project with name hoopla
# [VERBOSE] Tagstore for hoopla intialised (id 2)
# [DEBUG] REST GET url http://controller:35357/v3/regions/, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/regions/ type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"regions":[{"enabled":1,"id":"toremove"},{"enabled":1,"id":"toignore"}]}
# [VERBOSE] fetching tagstore data cache
# [DEBUG] REST GET url http://controller:35357/v3/projects?parent_id=2, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?parent_id=2 type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":10,"name":"hoopla_4","tags":["ID_region_toremove","ID_endpoint_toremove","ID_endpoint_pub2","ID_endpoint_priv3","ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAx","ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAy"]}]}
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [INFO] Creating regions: regone regtwo a2nd
# [DEBUG] REST POST url http://controller:35357/v3/regions/, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"region":{"enabled":true,"id":"regone"}}
# [VERBOSE] Successful REST POST url http://controller:35357/v3/regions/ type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"region":{"id":"regone"}}
# [VERBOSE] sync: created region regone
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] using existing tagstore project 10 for ID_region_regone
# [DEBUG] REST PUT url http://controller:35357/v3/projects/10/tags/ID_region_regone, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/10/tags/ID_region_regone type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added ID_region_regone to tagstore
# [DEBUG] REST POST url http://controller:35357/v3/regions/, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"region":{"enabled":true,"id":"regtwo"}}
# [VERBOSE] Successful REST POST url http://controller:35357/v3/regions/ type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"region":{"id":"regtwo"}}
# [VERBOSE] sync: created region regtwo
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] using existing tagstore project 10 for ID_region_regtwo
# [DEBUG] REST PUT url http://controller:35357/v3/projects/10/tags/ID_region_regtwo, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/10/tags/ID_region_regtwo type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added ID_region_regtwo to tagstore
# [DEBUG] REST POST url http://controller:35357/v3/regions/, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"region":{"enabled":true,"id":"a2nd","parent_region_id":"regone"}}
# [VERBOSE] Successful REST POST url http://controller:35357/v3/regions/ type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"region":{"id":"a2nd"}}
# [VERBOSE] sync: created region a2nd
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] using existing tagstore project 10 for ID_region_a2nd
# [DEBUG] REST PUT url http://controller:35357/v3/projects/10/tags/ID_region_a2nd, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/10/tags/ID_region_a2nd type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added ID_region_a2nd to tagstore
# [VERBOSE] No existing regions to update
# [INFO] Disabling existing regions: toremove
# [DEBUG] REST PATCH url http://controller:35357/v3/regions/toremove, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PATCH full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PATCH full body {"region":{"enabled":false}}
# [VERBOSE] Successful REST PATCH url http://controller:35357/v3/regions/toremove type application/json
# [DEBUG] REST PATCH full response headers Content-Type=application/json
# [DEBUG] REST PATCH full response content {"region":{"id":"toremove"}}
# [VERBOSE] sync: deleted region toremove
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] REST DELETE url http://controller:35357/v3/projects/10/tags/ID_region_toremove, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST DELETE full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# DELETE: no match cmd found for method DELETE. success=1 response
# [VERBOSE] Successful REST DELETE url http://controller:35357/v3/projects/10/tags/ID_region_toremove type application/json
# [DEBUG] REST DELETE full response headers Content-Type=application/json
# [DEBUG] REST DELETE full response content {"success":1}
# [VERBOSE] deleted ID_region_toremove from tagstore
# region result {
#   'create' => [
#     [
#       'regone',
#       {
#         'id' => 'regone'
#       }
#     ],
#     [
#       'regtwo',
#       {
#         'id' => 'regtwo'
#       }
#     ],
#     [
#       'a2nd',
#       {
#         'id' => 'a2nd'
#       }
#     ]
#   ],
#   'delete' => [
#     [
#       'toremove',
#       {
#         'id' => 'toremove'
#       }
#     ]
#   ],
#   'update' => []
# }
# mock_rest: current history [
#   'GET http://controller:35357/v3/projects?name=hoopla  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/projects?name=hoopla  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/regions/  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/projects?parent_id=2  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'POST http://controller:35357/v3/regions/ {"region":{"enabled":true,"id":"regone"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/10/tags/ID_region_regone {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'POST http://controller:35357/v3/regions/ {"region":{"enabled":true,"id":"regtwo"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/10/tags/ID_region_regtwo {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'POST http://controller:35357/v3/regions/ {"region":{"enabled":true,"id":"a2nd","parent_region_id":"regone"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/10/tags/ID_region_a2nd {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PATCH http://controller:35357/v3/regions/toremove {"region":{"enabled":false}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'DELETE http://controller:35357/v3/projects/10/tags/ID_region_toremove  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json'
# ]
# [DEBUG] REST GET url http://controller:35357/v3/endpoints/, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/endpoints/ type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"endpoints":[{"enabled":1,"id":"toremove","interface":"pub","url":"url4"},{"enabled":1,"id":"pub2","interface":"pub","region_id":"regtwo","url":"url2"},{"enabled":1,"id":"priv3","interface":"priv","region_id":"regtwo","url":"url3"},{"enabled":1,"id":"toignore","interface":"pub","url":"url5"}]}
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [INFO] Creating endpoints: int_url1
# [DEBUG] REST POST url http://controller:35357/v3/endpoints/, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"endpoint":{"enabled":true,"interface":"int","region_id":"regone","url":"url1"}}
# [VERBOSE] Successful REST POST url http://controller:35357/v3/endpoints/ type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"endpoint":{"id":"pub1"}}
# [VERBOSE] sync: created endpoint int_url1
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] using existing tagstore project 10 for ID_endpoint_pub1
# [DEBUG] REST PUT url http://controller:35357/v3/projects/10/tags/ID_endpoint_pub1, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/10/tags/ID_endpoint_pub1 type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added ID_endpoint_pub1 to tagstore
# [INFO] Possibly updating existing endpoints: priv_url3 pub_url2
# [DEBUG] REST PATCH url http://controller:35357/v3/endpoints/pub2, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PATCH full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PATCH full body {"endpoint":{"region_id":"regone"}}
# [VERBOSE] Successful REST PATCH url http://controller:35357/v3/endpoints/pub2 type application/json
# [DEBUG] REST PATCH full response headers Content-Type=application/json
# [DEBUG] REST PATCH full response content {"endpoint":{"id":"pub2"}}
# [VERBOSE] sync: updated endpoint pub_url2
# [VERBOSE] sync: nothing to do for tagstore postprocessing during update for pub_url2 id pub2
# [INFO] Updated existing endpoints: pub_url2
# [INFO] Disabling existing endpoints: pub_url4
# [DEBUG] REST PATCH url http://controller:35357/v3/endpoints/toremove, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PATCH full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PATCH full body {"endpoint":{"enabled":false}}
# [VERBOSE] Successful REST PATCH url http://controller:35357/v3/endpoints/toremove type application/json
# [DEBUG] REST PATCH full response headers Content-Type=application/json
# [DEBUG] REST PATCH full response content {"endpoint":{"id":"toremove"}}
# [VERBOSE] sync: deleted endpoint pub_url4
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] REST DELETE url http://controller:35357/v3/projects/10/tags/ID_endpoint_toremove, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST DELETE full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# DELETE: no match cmd found for method DELETE. success=1 response
# [VERBOSE] Successful REST DELETE url http://controller:35357/v3/projects/10/tags/ID_endpoint_toremove type application/json
# [DEBUG] REST DELETE full response headers Content-Type=application/json
# [DEBUG] REST DELETE full response content {"success":1}
# [VERBOSE] deleted ID_endpoint_toremove from tagstore
# endpoint result {
#   'create' => [
#     [
#       'int_url1',
#       {
#         'id' => 'pub1'
#       }
#     ]
#   ],
#   'delete' => [
#     [
#       'pub_url4',
#       {
#         'id' => 'toremove'
#       }
#     ]
#   ],
#   'update' => [
#     [
#       'pub_url2',
#       {
#         'id' => 'pub2'
#       }
#     ]
#   ]
# }
# mock_rest: current history [
#   'GET http://controller:35357/v3/endpoints/  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'POST http://controller:35357/v3/endpoints/ {"endpoint":{"enabled":true,"interface":"int","region_id":"regone","url":"url1"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/10/tags/ID_endpoint_pub1 {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PATCH http://controller:35357/v3/endpoints/pub2 {"endpoint":{"region_id":"regone"}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PATCH http://controller:35357/v3/endpoints/toremove {"endpoint":{"enabled":false}} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'DELETE http://controller:35357/v3/projects/10/tags/ID_endpoint_toremove  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json'
# ]
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] REST GET url http://controller:35357/v3/projects?name=someproj, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/projects?name=someproj type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"projects":[{"id":3}]}
# [VERBOSE] ID 3 found for project with name someproj for role sync
# [DEBUG] REST GET url http://controller:35357/v3/users?name=auser, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/users?name=auser type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"users":[{"id":12333}]}
# [VERBOSE] ID 12333 found for user with name auser for role sync
# [DEBUG] REST GET url http://controller:35357/v3/roles?name=garden, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/roles?name=garden type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"roles":[{"id":9903}]}
# [VERBOSE] ID 9903 found for role with name garden for role sync
# [DEBUG] REST GET url http://controller:35357/v3/roles?name=gnome, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/roles?name=gnome type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"roles":[{"id":9902}]}
# [VERBOSE] ID 9902 found for role with name gnome for role sync
# [DEBUG] REST GET url http://controller:35357/v3/domains?name=somedomain, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/domains?name=somedomain type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"domains":[{"id":"dom123","name":"somedomain"}]}
# [VERBOSE] ID dom123 found for domain with name somedomain for role sync
# [DEBUG] REST GET url http://controller:35357/v3/groups?name=agroup, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/groups?name=agroup type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"groups":[{"id":12345}]}
# [VERBOSE] ID 12345 found for group with name agroup for role sync
# [DEBUG] REST GET url http://controller:35357/v3/roles?name=smurfs, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url http://controller:35357/v3/roles?name=smurfs type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json
# [DEBUG] REST GET full response content {"roles":[{"id":9904}]}
# [VERBOSE] ID 9904 found for role with name smurfs for role sync
# [VERBOSE] roles sync: going to add domains/dom123/groups/12345/roles/9904 projects/3/users/12333/roles/9903
# [DEBUG] REST PUT url http://controller:35357/v3/domains/dom123/groups/12345/roles/9904, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/domains/dom123/groups/12345/roles/9904 type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] using existing tagstore project 10 for ROLE_ZG9tYWlucy9kb20xMjMvZ3JvdXBzLzEyMzQ1L3JvbGVzLzk5MDQ
# [DEBUG] REST PUT url http://controller:35357/v3/projects/10/tags/ROLE_ZG9tYWlucy9kb20xMjMvZ3JvdXBzLzEyMzQ1L3JvbGVzLzk5MDQ, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/10/tags/ROLE_ZG9tYWlucy9kb20xMjMvZ3JvdXBzLzEyMzQ1L3JvbGVzLzk5MDQ type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added ROLE_ZG9tYWlucy9kb20xMjMvZ3JvdXBzLzEyMzQ1L3JvbGVzLzk5MDQ to tagstore
# [DEBUG] REST PUT url http://controller:35357/v3/projects/3/users/12333/roles/9903, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/3/users/12333/roles/9903 type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [VERBOSE] using existing tagstore project 10 for ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAz
# [DEBUG] REST PUT url http://controller:35357/v3/projects/10/tags/ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAz, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST PUT full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST PUT full body {}
# PUT: no match cmd found for method PUT. success=1 response
# [VERBOSE] Successful REST PUT url http://controller:35357/v3/projects/10/tags/ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAz type application/json
# [DEBUG] REST PUT full response headers Content-Type=application/json
# [DEBUG] REST PUT full response content {"success":1}
# [VERBOSE] Added ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAz to tagstore
# [VERBOSE] roles sync: going to delete projects/3/users/12333/roles/9901
# [DEBUG] REST DELETE url http://controller:35357/v3/projects/3/users/12333/roles/9901, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST DELETE full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# DELETE: no match cmd found for method DELETE. success=1 response
# [VERBOSE] Successful REST DELETE url http://controller:35357/v3/projects/3/users/12333/roles/9901 type application/json
# [DEBUG] REST DELETE full response headers Content-Type=application/json
# [DEBUG] REST DELETE full response content {"success":1}
# [DEBUG] fetch: tagstore cache exists, not doing anything
# [DEBUG] REST DELETE url http://controller:35357/v3/projects/10/tags/ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAx, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST DELETE full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# DELETE: no match cmd found for method DELETE. success=1 response
# [VERBOSE] Successful REST DELETE url http://controller:35357/v3/projects/10/tags/ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAx type application/json
# [DEBUG] REST DELETE full response headers Content-Type=application/json
# [DEBUG] REST DELETE full response content {"success":1}
# [VERBOSE] deleted ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAx from tagstore
# mock_rest: current history [
#   'GET http://controller:35357/v3/projects?name=someproj  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/users?name=auser  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/roles?name=garden  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/roles?name=gnome  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/domains?name=somedomain  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/groups?name=agroup  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'GET http://controller:35357/v3/roles?name=smurfs  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/domains/dom123/groups/12345/roles/9904 {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/10/tags/ROLE_ZG9tYWlucy9kb20xMjMvZ3JvdXBzLzEyMzQ1L3JvbGVzLzk5MDQ {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/3/users/12333/roles/9903 {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'PUT http://controller:35357/v3/projects/10/tags/ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAz {} Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'DELETE http://controller:35357/v3/projects/3/users/12333/roles/9901  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json',
#   'DELETE http://controller:35357/v3/projects/10/tags/ROLE_cHJvamVjdHMvMy91c2Vycy8xMjMzMy9yb2xlcy85OTAx  Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json'
# ]
t/client-identity-v3.t ........ ok
t/client-request.t ............ ok
t/client-response.t ........... ok
# [DEBUG] _page method METHOD url some/url
# [DEBUG] _page method METHOD url some/otherurl
t/client-rest.t ............... ok
t/client.t .................... ok
# [DEBUG] REST POST request endpoint /some/{user}/super service theservice has no known service
# [DEBUG] REST POST url /some/auser/super, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"something":{"int":1,"name":"thename"}}
# [VERBOSE] Successful REST POST url /some/auser/super type application/json
# [DEBUG] REST POST full response headers Content-Type=application/json
# [DEBUG] REST POST full response content {"woo":"hoo"}
# [DEBUG] REST POST request endpoint /some/{user}/super service theservice has no known service
# [DEBUG] REST POST url /some/anotheruser/super, body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST POST full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [DEBUG] REST POST full body {"something":{"int":1,"name":"thename"}}
# [ERROR] REST POST failed (url /some/anotheruser/super code 400): {"error":{"message":"fail fail fail"}}
# [DEBUG] REST GET request endpoint /simple?a=1&b=2 service theservice has no known service
# [DEBUG] REST GET url /simple, no body, headers Accept,Accept-Encoding,Content-Type
# [DEBUG] REST GET full headers Accept=application/json, text/plain,Accept-Encoding=identity, gzip, deflate, compress,Content-Type=application/json
# [VERBOSE] Successful REST GET url /simple type application/json
# [DEBUG] REST GET full response headers Content-Type=application/json,Special=123
# [DEBUG] REST GET full response content {"success":1}
t/mock_rest.t ................. ok
All tests successful.
Files=15, Tests=305,  1 wallclock secs ( 0.05 usr  0.16 sys +  1.05 cusr  0.20 csys =  1.45 CPU)
Result: PASS

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module              Need Have    
    ------------------- ---- --------
    base                0    2.23    
    Exporter            0    5.72    
    JSON::XS            0    3.04    
    LWP::UserAgent      0    6.35    
    MIME::Base64        0    3.15    
    Module::Load        0    0.32    
    overload            0    1.22    
    parent              0    0.236   
    Readonly            0    2.05    
    REST::Client        0    273     
    Set::Scalar         0    1.29    
    strict              0    1.07    
    version             0    0.9924  
    warnings            0    1.18    

build_requires:

    Module              Need Have    
    ------------------- ---- --------
    ExtUtils::MakeMaker 0    7.34    
    File::Basename      0    2.84    
    FindBin             0    1.51    
    lib                 0    0.63    
    Test::MockModule    0    0.15    
    Test::More          0    1.302140
    Test::Pod           0    1.52    
    Test::Warnings      0    0.026   

configure_requires:

    Module              Need Have    
    ------------------- ---- --------
    ExtUtils::MakeMaker 0    7.34    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    LC_ALL = de_DE.ISO8859-1
    PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/cpansand/bin/freebsd9.3:/home/cpansand/bin/sh:/home/cpansand/bin:/usr/games:/home/cpansand/devel:/usr/home/eserte/src/srezic-misc/scripts
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 98875
    PERL5_CPAN_IS_RUNNING = 98875
    PERL5_CPAN_IS_RUNNING_IN_RECURSION = 98822,98875
    PERLDOC = -MPod::Perldoc::ToTextOverstrike
    PERL_BATCH = yes
    PERL_CANARY_STABILITY_NOPROMPT = 1
    PERL_CPAN_REPORTER_CONFIG = /var/tmp/cpansmoker-1023/2018110122/cpanreporter_000_config.ini
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    SHELL = /usr/local/bin/zsh
    TERM = screen
    TMPDIR = /var/tmp/cpansmoker-1023/2018110122

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /usr/perl5.18.2/bin/perl
    $UID/$EUID = 1023 / 1023
    $GID = 1023 1023
    $EGID = 1023 1023

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.16    
    CPAN::Meta          2.150010
    Cwd                 3.74    
    ExtUtils::CBuilder  0.280230
    ExtUtils::Command   7.34    
    ExtUtils::Install   2.14    
    ExtUtils::MakeMaker 7.34    
    ExtUtils::Manifest  1.71    
    ExtUtils::ParseXS   3.35    
    File::Spec          3.74    
    JSON                2.97001 
    JSON::PP            2.97001 
    Module::Build       0.4224  
    Module::Signature   0.81    
    Parse::CPAN::Meta   2.150010
    Test::Harness       3.41    
    Test::More          1.302140
    YAML                1.24    
    YAML::Syck          1.31    
    version             0.9924  


--

Summary of my perl5 (revision 5 version 18 subversion 2) configuration:
   
  Platform:
    osname=freebsd, osvers=9.2-release-p4, archname=amd64-freebsd
    uname='freebsd cvrsnica-freebsd-92 9.2-release-p4 freebsd 9.2-release-p4 #0: tue apr 8 18:08:22 utc 2014 root@amd64-builder.daemonology.net:usrobjusrsrcsysgeneric amd64 '
    config_args='-ds -e -Dprefix=/usr/perl5.18.2'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
    optimize='-O',
    cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.2.1 20070831 patched [FreeBSD]', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-Wl,-E  -fstack-protector -L/usr/local/lib'
    libpth=/usr/lib /usr/local/lib
    libs=-lgdbm -lm -lcrypt -lutil -lc
    perllibs=-lm -lcrypt -lutil -lc
    libc=, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-DPIC -fPIC', lddlflags='-shared  -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
                        USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
  Built under freebsd
  Compiled at May 16 2014 01:27:28
  %ENV:
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="98875"
    PERL5_CPAN_IS_RUNNING="98875"
    PERL5_CPAN_IS_RUNNING_IN_RECURSION="98822,98875"
    PERLDOC="-MPod::Perldoc::ToTextOverstrike"
    PERL_BATCH="yes"
    PERL_CANARY_STABILITY_NOPROMPT="1"
    PERL_CPAN_REPORTER_CONFIG="/var/tmp/cpansmoker-1023/2018110122/cpanreporter_000_config.ini"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
  @INC:
    /usr/perl5.18.2/lib/site_perl/5.18.2/amd64-freebsd
    /usr/perl5.18.2/lib/site_perl/5.18.2
    /usr/perl5.18.2/lib/5.18.2/amd64-freebsd
    /usr/perl5.18.2/lib/5.18.2
    .