Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(*) lazy load api #23

Merged
merged 1 commit into from
Aug 19, 2022
Merged

feat(*) lazy load api #23

merged 1 commit into from
Aug 19, 2022

Conversation

mayocream
Copy link
Contributor

@mayocream mayocream commented Aug 18, 2022

Reduce memory usage.

Similar to Kong/lua-resty-gcp#7.

Benchmark

setmetatable(_G, nil) -- disable global warnings

ngx.update_time()
local start = ngx.now()

collectgarbage()
print("before require: ", collectgarbage("count"))

local AWS = require("resty.aws")
local EnvironmentCredentials = require "resty.aws.credentials.EnvironmentCredentials"
print("after require: ", collectgarbage("count"))

local aws = AWS({ credentials = EnvironmentCredentials.new() })
print("after initializing: ", collectgarbage("count"))

local other = AWS({ credentials = EnvironmentCredentials.new() })
print("after creating another instance: ", collectgarbage("count"))

aws = nil
other = nil
collectgarbage("collect")
print("after garbage collection: ", collectgarbage("count"))

ngx.update_time()
print("duration: ", ngx.now() - start)

main branch

resty tests/bench.lua | column -t -s :
before require                    199.5703125
after require                     39980.15234375
after initializing                32891.67578125
after creating another instance   33002.5390625
after garbage collection          31729.9765625
duration                          0.85700011253357

This PR fix/lazy_load_api

resty tests/bench.lua | column -t -s :
before require                    199.5703125
after require                     731.447265625
after initializing                2439.0419921875
after creating another instance   2537.4130859375
after garbage collection          2003.59765625
duration                          0.019999980926514

@mayocream
Copy link
Contributor Author

mayocream commented Aug 18, 2022

Test result

Luacheck:

$ luacheck src
Checking src/resty/aws/config.lua                 OK
Checking src/resty/aws/credentials/ChainableTemporaryCredentials.lua OK
Checking src/resty/aws/credentials/CredentialProviderChain.lua OK
Checking src/resty/aws/credentials/Credentials.lua OK
Checking src/resty/aws/credentials/EC2MetadataCredentials.lua OK
Checking src/resty/aws/credentials/EnvironmentCredentials.lua OK
Checking src/resty/aws/credentials/RemoteCredentials.lua OK
Checking src/resty/aws/credentials/TokenFileWebIdentityCredentials.lua OK
Checking src/resty/aws/init.lua                   OK
Checking src/resty/aws/raw-api/AWSMigrationHub-2017-05-31.lua OK
Checking src/resty/aws/raw-api/accessanalyzer-2019-11-01.lua OK
Checking src/resty/aws/raw-api/acm-2015-12-08.lua OK
Checking src/resty/aws/raw-api/acm-pca-2017-08-22.lua OK
Checking src/resty/aws/raw-api/alexaforbusiness-2017-11-09.lua OK
Checking src/resty/aws/raw-api/amplify-2017-07-25.lua OK
Checking src/resty/aws/raw-api/apigateway-2015-07-09.lua OK
Checking src/resty/aws/raw-api/apigatewaymanagementapi-2018-11-29.lua OK
Checking src/resty/aws/raw-api/apigatewayv2-2018-11-29.lua OK
Checking src/resty/aws/raw-api/appconfig-2019-10-09.lua OK
Checking src/resty/aws/raw-api/appflow-2020-08-23.lua OK
Checking src/resty/aws/raw-api/application-autoscaling-2016-02-06.lua OK
Checking src/resty/aws/raw-api/application-insights-2018-11-25.lua OK
Checking src/resty/aws/raw-api/appmesh-2018-10-01.lua OK
Checking src/resty/aws/raw-api/appmesh-2019-01-25.lua OK
Checking src/resty/aws/raw-api/appstream-2016-12-01.lua OK
Checking src/resty/aws/raw-api/appsync-2017-07-25.lua OK
Checking src/resty/aws/raw-api/athena-2017-05-18.lua OK
Checking src/resty/aws/raw-api/autoscaling-2011-01-01.lua OK
Checking src/resty/aws/raw-api/autoscaling-plans-2018-01-06.lua OK
Checking src/resty/aws/raw-api/backup-2018-11-15.lua OK
Checking src/resty/aws/raw-api/batch-2016-08-10.lua OK
Checking src/resty/aws/raw-api/braket-2019-09-01.lua OK
Checking src/resty/aws/raw-api/budgets-2016-10-20.lua OK
Checking src/resty/aws/raw-api/ce-2017-10-25.lua  OK
Checking src/resty/aws/raw-api/chime-2018-05-01.lua OK
Checking src/resty/aws/raw-api/cloud9-2017-09-23.lua OK
Checking src/resty/aws/raw-api/clouddirectory-2016-05-10.lua OK
Checking src/resty/aws/raw-api/clouddirectory-2017-01-11.lua OK
Checking src/resty/aws/raw-api/cloudformation-2010-05-15.lua OK
Checking src/resty/aws/raw-api/cloudfront-2016-11-25.lua OK
Checking src/resty/aws/raw-api/cloudfront-2017-03-25.lua OK
Checking src/resty/aws/raw-api/cloudfront-2017-10-30.lua OK
Checking src/resty/aws/raw-api/cloudfront-2018-06-18.lua OK
Checking src/resty/aws/raw-api/cloudfront-2018-11-05.lua OK
Checking src/resty/aws/raw-api/cloudfront-2019-03-26.lua OK
Checking src/resty/aws/raw-api/cloudfront-2020-05-31.lua OK
Checking src/resty/aws/raw-api/cloudhsm-2014-05-30.lua OK
Checking src/resty/aws/raw-api/cloudhsmv2-2017-04-28.lua OK
Checking src/resty/aws/raw-api/cloudsearch-2011-02-01.lua OK
Checking src/resty/aws/raw-api/cloudsearch-2013-01-01.lua OK
Checking src/resty/aws/raw-api/cloudsearchdomain-2013-01-01.lua OK
Checking src/resty/aws/raw-api/cloudtrail-2013-11-01.lua OK
Checking src/resty/aws/raw-api/codeartifact-2018-09-22.lua OK
Checking src/resty/aws/raw-api/codebuild-2016-10-06.lua OK
Checking src/resty/aws/raw-api/codecommit-2015-04-13.lua OK
Checking src/resty/aws/raw-api/codedeploy-2014-10-06.lua OK
Checking src/resty/aws/raw-api/codeguru-reviewer-2019-09-19.lua OK
Checking src/resty/aws/raw-api/codeguruprofiler-2019-07-18.lua OK
Checking src/resty/aws/raw-api/codepipeline-2015-07-09.lua OK
Checking src/resty/aws/raw-api/codestar-2017-04-19.lua OK
Checking src/resty/aws/raw-api/codestar-connections-2019-12-01.lua OK
Checking src/resty/aws/raw-api/codestar-notifications-2019-10-15.lua OK
Checking src/resty/aws/raw-api/cognito-identity-2014-06-30.lua OK
Checking src/resty/aws/raw-api/cognito-idp-2016-04-18.lua OK
Checking src/resty/aws/raw-api/cognito-sync-2014-06-30.lua OK
Checking src/resty/aws/raw-api/comprehend-2017-11-27.lua OK
Checking src/resty/aws/raw-api/comprehendmedical-2018-10-30.lua OK
Checking src/resty/aws/raw-api/compute-optimizer-2019-11-01.lua OK
Checking src/resty/aws/raw-api/config-2014-11-12.lua OK
Checking src/resty/aws/raw-api/connect-2017-08-08.lua OK
Checking src/resty/aws/raw-api/connectparticipant-2018-09-07.lua OK
Checking src/resty/aws/raw-api/cur-2017-01-06.lua OK
Checking src/resty/aws/raw-api/dataexchange-2017-07-25.lua OK
Checking src/resty/aws/raw-api/datapipeline-2012-10-29.lua OK
Checking src/resty/aws/raw-api/datasync-2018-11-09.lua OK
Checking src/resty/aws/raw-api/dax-2017-04-19.lua OK
Checking src/resty/aws/raw-api/detective-2018-10-26.lua OK
Checking src/resty/aws/raw-api/devicefarm-2015-06-23.lua OK
Checking src/resty/aws/raw-api/directconnect-2012-10-25.lua OK
Checking src/resty/aws/raw-api/discovery-2015-11-01.lua OK
Checking src/resty/aws/raw-api/dlm-2018-01-12.lua OK
Checking src/resty/aws/raw-api/dms-2016-01-01.lua OK
Checking src/resty/aws/raw-api/docdb-2014-10-31.lua OK
Checking src/resty/aws/raw-api/ds-2015-04-16.lua  OK
Checking src/resty/aws/raw-api/dynamodb-2011-12-05.lua OK
Checking src/resty/aws/raw-api/dynamodb-2012-08-10.lua OK
Checking src/resty/aws/raw-api/ebs-2019-11-02.lua OK
Checking src/resty/aws/raw-api/ec2-2016-11-15.lua OK
Checking src/resty/aws/raw-api/ec2-instance-connect-2018-04-02.lua OK
Checking src/resty/aws/raw-api/ecr-2015-09-21.lua OK
Checking src/resty/aws/raw-api/ecs-2014-11-13.lua OK
Checking src/resty/aws/raw-api/eks-2017-11-01.lua OK
Checking src/resty/aws/raw-api/elastic-inference-2017-07-25.lua OK
Checking src/resty/aws/raw-api/elasticache-2015-02-02.lua OK
Checking src/resty/aws/raw-api/elasticbeanstalk-2010-12-01.lua OK
Checking src/resty/aws/raw-api/elasticfilesystem-2015-02-01.lua OK
Checking src/resty/aws/raw-api/elasticloadbalancing-2012-06-01.lua OK
Checking src/resty/aws/raw-api/elasticloadbalancingv2-2015-12-01.lua OK
Checking src/resty/aws/raw-api/elasticmapreduce-2009-03-31.lua OK
Checking src/resty/aws/raw-api/elastictranscoder-2012-09-25.lua OK
Checking src/resty/aws/raw-api/email-2010-12-01.lua OK
Checking src/resty/aws/raw-api/entitlement-marketplace-2017-01-11.lua OK
Checking src/resty/aws/raw-api/es-2015-01-01.lua  OK
Checking src/resty/aws/raw-api/eventbridge-2015-10-07.lua OK
Checking src/resty/aws/raw-api/events-2015-10-07.lua OK
Checking src/resty/aws/raw-api/firehose-2015-08-04.lua OK
Checking src/resty/aws/raw-api/fms-2018-01-01.lua OK
Checking src/resty/aws/raw-api/forecast-2018-06-26.lua OK
Checking src/resty/aws/raw-api/forecastquery-2018-06-26.lua OK
Checking src/resty/aws/raw-api/frauddetector-2019-11-15.lua OK
Checking src/resty/aws/raw-api/fsx-2018-03-01.lua OK
Checking src/resty/aws/raw-api/gamelift-2015-10-01.lua OK
Checking src/resty/aws/raw-api/glacier-2012-06-01.lua OK
Checking src/resty/aws/raw-api/globalaccelerator-2018-08-08.lua OK
Checking src/resty/aws/raw-api/glue-2017-03-31.lua OK
Checking src/resty/aws/raw-api/greengrass-2017-06-07.lua OK
Checking src/resty/aws/raw-api/groundstation-2019-05-23.lua OK
Checking src/resty/aws/raw-api/guardduty-2017-11-28.lua OK
Checking src/resty/aws/raw-api/health-2016-08-04.lua OK
Checking src/resty/aws/raw-api/honeycode-2020-03-01.lua OK
Checking src/resty/aws/raw-api/iam-2010-05-08.lua OK
Checking src/resty/aws/raw-api/identitystore-2020-06-15.lua OK
Checking src/resty/aws/raw-api/imagebuilder-2019-12-02.lua OK
Checking src/resty/aws/raw-api/importexport-2010-06-01.lua OK
Checking src/resty/aws/raw-api/inspector-2016-02-16.lua OK
Checking src/resty/aws/raw-api/iot-2015-05-28.lua OK
Checking src/resty/aws/raw-api/iot-data-2015-05-28.lua OK
Checking src/resty/aws/raw-api/iot-jobs-data-2017-09-29.lua OK
Checking src/resty/aws/raw-api/iot1click-devices-2018-05-14.lua OK
Checking src/resty/aws/raw-api/iot1click-projects-2018-05-14.lua OK
Checking src/resty/aws/raw-api/iotanalytics-2017-11-27.lua OK
Checking src/resty/aws/raw-api/iotevents-2018-07-27.lua OK
Checking src/resty/aws/raw-api/iotevents-data-2018-10-23.lua OK
Checking src/resty/aws/raw-api/iotsecuretunneling-2018-10-05.lua OK
Checking src/resty/aws/raw-api/iotsitewise-2019-12-02.lua OK
Checking src/resty/aws/raw-api/iotthingsgraph-2018-09-06.lua OK
Checking src/resty/aws/raw-api/ivs-2020-07-14.lua OK
Checking src/resty/aws/raw-api/kafka-2018-11-14.lua OK
Checking src/resty/aws/raw-api/kendra-2019-02-03.lua OK
Checking src/resty/aws/raw-api/kinesis-2013-12-02.lua OK
Checking src/resty/aws/raw-api/kinesis-video-archived-media-2017-09-30.lua OK
Checking src/resty/aws/raw-api/kinesis-video-media-2017-09-30.lua OK
Checking src/resty/aws/raw-api/kinesis-video-signaling-2019-12-04.lua OK
Checking src/resty/aws/raw-api/kinesisanalytics-2015-08-14.lua OK
Checking src/resty/aws/raw-api/kinesisanalyticsv2-2018-05-23.lua OK
Checking src/resty/aws/raw-api/kinesisvideo-2017-09-30.lua OK
Checking src/resty/aws/raw-api/kms-2014-11-01.lua OK
Checking src/resty/aws/raw-api/lakeformation-2017-03-31.lua OK
Checking src/resty/aws/raw-api/lambda-2014-11-11.lua OK
Checking src/resty/aws/raw-api/lambda-2015-03-31.lua OK
Checking src/resty/aws/raw-api/lex-models-2017-04-19.lua OK
Checking src/resty/aws/raw-api/license-manager-2018-08-01.lua OK
Checking src/resty/aws/raw-api/lightsail-2016-11-28.lua OK
Checking src/resty/aws/raw-api/logs-2014-03-28.lua OK
Checking src/resty/aws/raw-api/machinelearning-2014-12-12.lua OK
Checking src/resty/aws/raw-api/macie-2017-12-19.lua OK
Checking src/resty/aws/raw-api/macie2-2020-01-01.lua OK
Checking src/resty/aws/raw-api/managedblockchain-2018-09-24.lua OK
Checking src/resty/aws/raw-api/marketplace-catalog-2018-09-17.lua OK
Checking src/resty/aws/raw-api/marketplacecommerceanalytics-2015-07-01.lua OK
Checking src/resty/aws/raw-api/mediaconnect-2018-11-14.lua OK
Checking src/resty/aws/raw-api/mediaconvert-2017-08-29.lua OK
Checking src/resty/aws/raw-api/medialive-2017-10-14.lua OK
Checking src/resty/aws/raw-api/mediapackage-2017-10-12.lua OK
Checking src/resty/aws/raw-api/mediapackage-vod-2018-11-07.lua OK
Checking src/resty/aws/raw-api/mediastore-2017-09-01.lua OK
Checking src/resty/aws/raw-api/mediastore-data-2017-09-01.lua OK
Checking src/resty/aws/raw-api/mediatailor-2018-04-23.lua OK
Checking src/resty/aws/raw-api/meteringmarketplace-2016-01-14.lua OK
Checking src/resty/aws/raw-api/migrationhub-config-2019-06-30.lua OK
Checking src/resty/aws/raw-api/mobile-2017-07-01.lua OK
Checking src/resty/aws/raw-api/mobileanalytics-2014-06-05.lua OK
Checking src/resty/aws/raw-api/monitoring-2010-08-01.lua OK
Checking src/resty/aws/raw-api/mq-2017-11-27.lua  OK
Checking src/resty/aws/raw-api/mturk-requester-2017-01-17.lua OK
Checking src/resty/aws/raw-api/neptune-2014-10-31.lua OK
Checking src/resty/aws/raw-api/networkmanager-2019-07-05.lua OK
Checking src/resty/aws/raw-api/opsworks-2013-02-18.lua OK
Checking src/resty/aws/raw-api/opsworkscm-2016-11-01.lua OK
Checking src/resty/aws/raw-api/organizations-2016-11-28.lua OK
Checking src/resty/aws/raw-api/outposts-2019-12-03.lua OK
Checking src/resty/aws/raw-api/personalize-2018-05-22.lua OK
Checking src/resty/aws/raw-api/personalize-events-2018-03-22.lua OK
Checking src/resty/aws/raw-api/personalize-runtime-2018-05-22.lua OK
Checking src/resty/aws/raw-api/pi-2018-02-27.lua  OK
Checking src/resty/aws/raw-api/pinpoint-2016-12-01.lua OK
Checking src/resty/aws/raw-api/pinpoint-email-2018-07-26.lua OK
Checking src/resty/aws/raw-api/polly-2016-06-10.lua OK
Checking src/resty/aws/raw-api/pricing-2017-10-15.lua OK
Checking src/resty/aws/raw-api/qldb-2019-01-02.lua OK
Checking src/resty/aws/raw-api/qldb-session-2019-07-11.lua OK
Checking src/resty/aws/raw-api/quicksight-2018-04-01.lua OK
Checking src/resty/aws/raw-api/ram-2018-01-04.lua OK
Checking src/resty/aws/raw-api/rds-2013-01-10.lua OK
Checking src/resty/aws/raw-api/rds-2013-02-12.lua OK
Checking src/resty/aws/raw-api/rds-2013-09-09.lua OK
Checking src/resty/aws/raw-api/rds-2014-09-01.lua OK
Checking src/resty/aws/raw-api/rds-2014-10-31.lua OK
Checking src/resty/aws/raw-api/rds-data-2018-08-01.lua OK
Checking src/resty/aws/raw-api/redshift-2012-12-01.lua OK
Checking src/resty/aws/raw-api/redshift-data-2019-12-20.lua OK
Checking src/resty/aws/raw-api/region_config_data.lua OK
Checking src/resty/aws/raw-api/rekognition-2016-06-27.lua OK
Checking src/resty/aws/raw-api/resource-groups-2017-11-27.lua OK
Checking src/resty/aws/raw-api/resourcegroupstaggingapi-2017-01-26.lua OK
Checking src/resty/aws/raw-api/robomaker-2018-06-29.lua OK
Checking src/resty/aws/raw-api/route53-2013-04-01.lua OK
Checking src/resty/aws/raw-api/route53domains-2014-05-15.lua OK
Checking src/resty/aws/raw-api/route53resolver-2018-04-01.lua OK
Checking src/resty/aws/raw-api/runtime-lex-2016-11-28.lua OK
Checking src/resty/aws/raw-api/runtime-sagemaker-2017-05-13.lua OK
Checking src/resty/aws/raw-api/s3-2006-03-01.lua  OK
Checking src/resty/aws/raw-api/s3control-2018-08-20.lua OK
Checking src/resty/aws/raw-api/sagemaker-2017-07-24.lua OK
Checking src/resty/aws/raw-api/sagemaker-a2i-runtime-2019-11-07.lua OK
Checking src/resty/aws/raw-api/savingsplans-2019-06-28.lua OK
Checking src/resty/aws/raw-api/schemas-2019-12-02.lua OK
Checking src/resty/aws/raw-api/sdb-2009-04-15.lua OK
Checking src/resty/aws/raw-api/secretsmanager-2017-10-17.lua OK
Checking src/resty/aws/raw-api/securityhub-2018-10-26.lua OK
Checking src/resty/aws/raw-api/serverlessrepo-2017-09-08.lua OK
Checking src/resty/aws/raw-api/service-quotas-2019-06-24.lua OK
Checking src/resty/aws/raw-api/servicecatalog-2015-12-10.lua OK
Checking src/resty/aws/raw-api/servicediscovery-2017-03-14.lua OK
Checking src/resty/aws/raw-api/sesv2-2019-09-27.lua OK
Checking src/resty/aws/raw-api/shield-2016-06-02.lua OK
Checking src/resty/aws/raw-api/signer-2017-08-25.lua OK
Checking src/resty/aws/raw-api/sms-2016-10-24.lua OK
Checking src/resty/aws/raw-api/sms-voice-2018-09-05.lua OK
Checking src/resty/aws/raw-api/snowball-2016-06-30.lua OK
Checking src/resty/aws/raw-api/sns-2010-03-31.lua OK
Checking src/resty/aws/raw-api/sqs-2012-11-05.lua OK
Checking src/resty/aws/raw-api/ssm-2014-11-06.lua OK
Checking src/resty/aws/raw-api/sso-2019-06-10.lua OK
Checking src/resty/aws/raw-api/sso-admin-2020-07-20.lua OK
Checking src/resty/aws/raw-api/sso-oidc-2019-06-10.lua OK
Checking src/resty/aws/raw-api/states-2016-11-23.lua OK
Checking src/resty/aws/raw-api/storagegateway-2013-06-30.lua OK
Checking src/resty/aws/raw-api/streams-dynamodb-2012-08-10.lua OK
Checking src/resty/aws/raw-api/sts-2011-06-15.lua OK
Checking src/resty/aws/raw-api/support-2013-04-15.lua OK
Checking src/resty/aws/raw-api/swf-2012-01-25.lua OK
Checking src/resty/aws/raw-api/synthetics-2017-10-11.lua OK
Checking src/resty/aws/raw-api/table_of_contents.lua OK
Checking src/resty/aws/raw-api/textract-2018-06-27.lua OK
Checking src/resty/aws/raw-api/transcribe-2017-10-26.lua OK
Checking src/resty/aws/raw-api/transfer-2018-11-05.lua OK
Checking src/resty/aws/raw-api/translate-2017-07-01.lua OK
Checking src/resty/aws/raw-api/waf-2015-08-24.lua OK
Checking src/resty/aws/raw-api/waf-regional-2016-11-28.lua OK
Checking src/resty/aws/raw-api/wafv2-2019-07-29.lua OK
Checking src/resty/aws/raw-api/workdocs-2016-05-01.lua OK
Checking src/resty/aws/raw-api/worklink-2018-09-25.lua OK
Checking src/resty/aws/raw-api/workmail-2017-10-01.lua OK
Checking src/resty/aws/raw-api/workmailmessageflow-2019-05-01.lua OK
Checking src/resty/aws/raw-api/workspaces-2015-04-08.lua OK
Checking src/resty/aws/raw-api/xray-2016-04-12.lua OK
Checking src/resty/aws/request/build.lua          OK
Checking src/resty/aws/request/execute.lua        OK
Checking src/resty/aws/request/http/http.lua      OK
Checking src/resty/aws/request/http/socket.lua    OK
Checking src/resty/aws/request/sign.lua           OK
Checking src/resty/aws/request/signatures/none.lua OK
Checking src/resty/aws/request/signatures/v4.lua  OK
Checking src/resty/aws/request/validate.lua       OK
Checking src/resty/aws/utils.lua                  OK

Total: 0 warnings / 0 errors in 266 files

Busted:

$ busted
[==========] Running tests from scanned files.
[----------] Global test environment setup.
[----------] Running tests from spec/01-generic/01-config_spec.lua
[ RUN      ] spec/01-generic/01-config_spec.lua @ 31: config loader sets defaults
[       OK ] spec/01-generic/01-config_spec.lua @ 31: config loader sets defaults (2.12 ms)
[ RUN      ] spec/01-generic/01-config_spec.lua @ 65: config loader loads the configuration; default profile
[       OK ] spec/01-generic/01-config_spec.lua @ 65: config loader loads the configuration; default profile (0.88 ms)
[ RUN      ] spec/01-generic/01-config_spec.lua @ 95: config loader loads the configuration; 'tieske' profile
[       OK ] spec/01-generic/01-config_spec.lua @ 95: config loader loads the configuration; 'tieske' profile (0.78 ms)
[ RUN      ] spec/01-generic/01-config_spec.lua @ 125: config loader global field returns the global configuration
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[       OK ] spec/01-generic/01-config_spec.lua @ 125: config loader global field returns the global configuration (3.73 ms)
[----------] 4 tests from spec/01-generic/01-config_spec.lua (23.16 ms total)

[----------] Running tests from spec/01-generic/02-aws_spec.lua
[ RUN      ] spec/01-generic/02-aws_spec.lua @ 16: AWS main instance gets default config #only
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[       OK ] spec/01-generic/02-aws_spec.lua @ 16: AWS main instance gets default config #only (9.13 ms)
[ RUN      ] spec/01-generic/02-aws_spec.lua @ 26: AWS main instance overrides default config
[       OK ] spec/01-generic/02-aws_spec.lua @ 26: AWS main instance overrides default config (2.88 ms)
[ RUN      ] spec/01-generic/02-aws_spec.lua @ 40: AWS main instance allows custom config
[       OK ] spec/01-generic/02-aws_spec.lua @ 40: AWS main instance allows custom config (1.26 ms)
[ RUN      ] spec/01-generic/02-aws_spec.lua @ 49: AWS main instance gets methods for services
[       OK ] spec/01-generic/02-aws_spec.lua @ 49: AWS main instance gets methods for services (1.40 ms)
[ RUN      ] spec/01-generic/02-aws_spec.lua @ 55: AWS main instance gets methods for services, spaces removed from serviceId
[       OK ] spec/01-generic/02-aws_spec.lua @ 55: AWS main instance gets methods for services, spaces removed from serviceId (1.28 ms)
[----------] 5 tests from spec/01-generic/02-aws_spec.lua (22.54 ms total)

[----------] Running tests from spec/01-generic/03-service_spec.lua
[ RUN      ] spec/01-generic/03-service_spec.lua @ 16: service generator creates a service
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[       OK ] spec/01-generic/03-service_spec.lua @ 16: service generator creates a service (13.26 ms)
[ RUN      ] spec/01-generic/03-service_spec.lua @ 27: service generator sets the parent aws instance
[       OK ] spec/01-generic/03-service_spec.lua @ 27: service generator sets the parent aws instance (1.40 ms)
[ RUN      ] spec/01-generic/03-service_spec.lua @ 34: service generator creates a specific service version
[       OK ] spec/01-generic/03-service_spec.lua @ 34: service generator creates a specific service version (9.23 ms)
[ RUN      ] spec/01-generic/03-service_spec.lua @ 45: service generator creates methods for operations
[       OK ] spec/01-generic/03-service_spec.lua @ 45: service generator creates methods for operations (2.49 ms)
[ RUN      ] spec/01-generic/03-service_spec.lua @ 51: service generator generated operations validate input 1
[       OK ] spec/01-generic/03-service_spec.lua @ 51: service generator generated operations validate input 1 (4.53 ms)
[ RUN      ] spec/01-generic/03-service_spec.lua @ 62: service generator generated operations validate input 2
[       OK ] spec/01-generic/03-service_spec.lua @ 62: service generator generated operations validate input 2 (3.65 ms)
[----------] 6 tests from spec/01-generic/03-service_spec.lua (41.28 ms total)

[----------] Running tests from spec/02-requests/01-validate_spec.lua
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: valid number is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: valid number is accepted (0.22 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: lower edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: lower edge is accepted (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: upper edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: upper edge is accepted (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: non-number is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: non-number is rejected (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: below min is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: below min is rejected (0.28 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: above max is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: above max is rejected (0.23 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: above max is rejected (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation double: above max is rejected (with id) (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: valid number is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: valid number is accepted (0.26 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: lower edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: lower edge is accepted (0.15 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: upper edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: upper edge is accepted (0.16 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: non-number is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: non-number is rejected (0.18 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: below min is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: below min is rejected (0.12 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: above max is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: above max is rejected (0.56 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: above max is rejected (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation integer: above max is rejected (with id) (0.16 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: valid number is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: valid number is accepted (0.33 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: lower edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: lower edge is accepted (0.12 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: upper edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: upper edge is accepted (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: non-number is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: non-number is rejected (0.12 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: below min is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: below min is rejected (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: above max is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: above max is rejected (0.18 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: above max is rejected (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation long: above max is rejected (with id) (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: valid number is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: valid number is accepted (0.07 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: lower edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: lower edge is accepted (0.06 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: upper edge is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: upper edge is accepted (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: non-number is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: non-number is rejected (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: below min is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: below min is rejected (0.04 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: above max is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: above max is rejected (0.06 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: above max is rejected (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation float: above max is rejected (with id) (0.04 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: valid string is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: valid string is accepted (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: lower edge length is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: lower edge length is accepted (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: upper edge length is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: upper edge length is accepted (0.06 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: non-string is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: non-string is rejected (0.04 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: below min length is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: below min length is rejected (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: above max length is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: above max length is rejected (0.13 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: above max length is rejected (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: above max length is rejected (with id) (0.08 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: valid string is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: valid string is accepted (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: non-enum is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation string: non-enum is rejected (0.06 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: valid string is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: valid string is accepted (0.27 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: lower edge length is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: lower edge length is accepted (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: upper edge length is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: upper edge length is accepted (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: non-string is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: non-string is rejected (0.04 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: below min length is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: below min length is rejected (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: above max length is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: above max length is rejected (0.07 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: above max length is rejected (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation blob: above max length is rejected (with id) (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: valid boolean (true) is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: valid boolean (true) is accepted (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: valid boolean (false) is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: valid boolean (false) is accepted (0.05 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: non-boolean is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: non-boolean is rejected (0.08 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: non-boolean is rejected (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: non-boolean is rejected (with id) (0.06 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: non-boolean (nil) rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation boolean: non-boolean (nil) rejected (0.10 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: valid list is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: valid list is accepted (0.14 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: lower edge length is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: lower edge length is accepted (0.18 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: upper edge length is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: upper edge length is accepted (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: non-list (boolean) is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: non-list (boolean) is rejected (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: non-list (hash-table) is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: non-list (hash-table) is rejected (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: below min length is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: below min length is rejected (0.07 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: above max length is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: above max length is rejected (0.26 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: members are validated
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: members are validated (0.15 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: members are validated (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation list: members are validated (with id) (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: valid map is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: valid map is accepted (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: lower edge size is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: lower edge size is accepted (0.27 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: upper edge size is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: upper edge size is accepted (0.20 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: non-map (boolean) is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: non-map (boolean) is rejected (0.10 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: below min size is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: below min size is rejected (0.10 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: above max size is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: above max size is rejected (0.23 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: keys are validated
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: keys are validated (0.12 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: keys are validated (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: keys are validated (with id) (0.12 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: values are validated
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: values are validated (0.73 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: values are validated (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation map: values are validated (with id) (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: valid structure is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: valid structure is accepted (0.13 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: unknown member is accepted
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: unknown member is accepted (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: non-structure (boolean) is rejected
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: non-structure (boolean) is rejected (0.11 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: required members are required
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: required members are required (0.10 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: required members are required (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: required members are required (with id) (0.09 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: members get validated
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: members get validated (0.08 ms)
[ RUN      ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: members get validated (with id)
[       OK ] spec/02-requests/01-validate_spec.lua @ 451: shape validation structure: members get validated (with id) (0.25 ms)
[----------] 75 tests from spec/02-requests/01-validate_spec.lua (24.30 ms total)

[----------] Running tests from spec/02-requests/02-build_request_spec.lua
[ RUN      ] spec/02-requests/02-build_request_spec.lua @ 123: operations protocol errors on a bad protocol
[       OK ] spec/02-requests/02-build_request_spec.lua @ 123: operations protocol errors on a bad protocol (0.69 ms)
[ RUN      ] spec/02-requests/02-build_request_spec.lua @ 133: operations protocol query: params go into query table, target action+version added
[       OK ] spec/02-requests/02-build_request_spec.lua @ 133: operations protocol query: params go into query table, target action+version added (0.13 ms)
[ RUN      ] spec/02-requests/02-build_request_spec.lua @ 158: operations protocol rest-json: querystring, uri, header and body params
[       OK ] spec/02-requests/02-build_request_spec.lua @ 158: operations protocol rest-json: querystring, uri, header and body params (0.33 ms)
[ RUN      ] spec/02-requests/02-build_request_spec.lua @ 193: operations protocol json: querystring, uri, header and body params
[       OK ] spec/02-requests/02-build_request_spec.lua @ 193: operations protocol json: querystring, uri, header and body params (0.33 ms)
[ RUN      ] spec/02-requests/02-build_request_spec.lua @ 228: operations protocol rest-xml: querystring, uri, header and body params
[       OK ] spec/02-requests/02-build_request_spec.lua @ 228: operations protocol rest-xml: querystring, uri, header and body params (2.35 ms)
[ RUN      ] spec/02-requests/02-build_request_spec.lua @ 296: operations protocol ec2: querystring, uri, header and body params
[ SKIPPED  ] spec/02-requests/02-build_request_spec.lua @ 296: operations protocol ec2: querystring, uri, header and body params (0.02 ms)
[----------] 6 tests from spec/02-requests/02-build_request_spec.lua (8.75 ms total)

[----------] Running tests from spec/02-requests/03-execute_spec.lua
[ RUN      ] spec/02-requests/03-execute_spec.lua @ 1: No tests for execution yet
[ SKIPPED  ] spec/02-requests/03-execute_spec.lua @ 1: No tests for execution yet (0.05 ms)
[----------] 1 test from spec/02-requests/03-execute_spec.lua (0.27 ms total)

[----------] Running tests from spec/02-requests/04-sign_v4_spec.lua
[ RUN      ] spec/02-requests/04-sign_v4_spec.lua @ 1: No tests for signing v4 yet
[ SKIPPED  ] spec/02-requests/04-sign_v4_spec.lua @ 1: No tests for signing v4 yet (0.03 ms)
[----------] 1 test from spec/02-requests/04-sign_v4_spec.lua (0.20 ms total)

[----------] Running tests from spec/03-credentials/01-Credentials_spec.lua
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 35: Credentials base-class Class inheritance instance does not modify class
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 35: Credentials base-class Class inheritance instance does not modify class (0.13 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 42: Credentials base-class Class inheritance sub-class instance does not modify class nor sub-class
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 42: Credentials base-class Class inheritance sub-class instance does not modify class nor sub-class (0.56 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 63: Credentials base-class new() accepts credentials
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 63: Credentials base-class new() accepts credentials (0.27 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 76: Credentials base-class instantiation from aws instance
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 76: Credentials base-class instantiation from aws instance (3.70 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 91: Credentials base-class new() expireTime defaults to 10 years if creds provided
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 91: Credentials base-class new() expireTime defaults to 10 years if creds provided (0.26 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 107: Credentials base-class new() only setting expireTime defaults to 0
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 107: Credentials base-class new() only setting expireTime defaults to 0 (0.14 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 115: Credentials base-class needsRefresh()
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 115: Credentials base-class needsRefresh() (0.12 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 124: Credentials base-class needsRefresh() accounts for expiryWindow
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 124: Credentials base-class needsRefresh() accounts for expiryWindow (0.11 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 136: Credentials base-class get() returns properties
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 136: Credentials base-class get() returns properties (0.12 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 145: Credentials base-class get() invokes refresh() when expired
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 145: Credentials base-class get() invokes refresh() when expired (0.18 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 155: Credentials base-class set() sets properties
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 155: Credentials base-class set() sets properties (0.08 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/01-Credentials_spec.lua @ 164: Credentials base-class set() accepts rfc3339 dates for expireTime
[       OK ] spec/03-credentials/01-Credentials_spec.lua @ 164: Credentials base-class set() accepts rfc3339 dates for expireTime (0.22 ms)
[----------] 12 tests from spec/03-credentials/01-Credentials_spec.lua (161.86 ms total)

[----------] Running tests from spec/03-credentials/02-EC2MetadataCredentials_spec.lua
[ RUN      ] spec/03-credentials/02-EC2MetadataCredentials_spec.lua @ 59: EC2MetadataCredentials fetches credentials
[       OK ] spec/03-credentials/02-EC2MetadataCredentials_spec.lua @ 59: EC2MetadataCredentials fetches credentials (0.20 ms)
[----------] 1 test from spec/03-credentials/02-EC2MetadataCredentials_spec.lua (3.75 ms total)

[----------] Running tests from spec/03-credentials/03-EnvironmentCredentials_spec.lua
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/03-EnvironmentCredentials_spec.lua @ 23: EnvironmentCredentials gets environment variables
[       OK ] spec/03-credentials/03-EnvironmentCredentials_spec.lua @ 23: EnvironmentCredentials gets environment variables (0.36 ms)
[----------] 1 test from spec/03-credentials/03-EnvironmentCredentials_spec.lua (18.13 ms total)

[----------] Running tests from spec/03-credentials/04-RemoteCredentials_spec.lua
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/04-RemoteCredentials_spec.lua @ 54: RemoteCredentials fetches credentials
[       OK ] spec/03-credentials/04-RemoteCredentials_spec.lua @ 54: RemoteCredentials fetches credentials (0.15 ms)
[----------] 1 test from spec/03-credentials/04-RemoteCredentials_spec.lua (16.34 ms total)

[----------] Running tests from spec/03-credentials/05-CredentialProviderChain_spec.lua
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/05-CredentialProviderChain_spec.lua @ 23: CredentialProviderChain gets environment variables which are first
[       OK ] spec/03-credentials/05-CredentialProviderChain_spec.lua @ 23: CredentialProviderChain gets environment variables which are first (0.30 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/05-CredentialProviderChain_spec.lua @ 44: CredentialProviderChain gets plain credentials which are last
[       OK ] spec/03-credentials/05-CredentialProviderChain_spec.lua @ 44: CredentialProviderChain gets plain credentials which are last (0.33 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] spec/03-credentials/05-CredentialProviderChain_spec.lua @ 70: CredentialProviderChain gets default providers if not specified
[       OK ] spec/03-credentials/05-CredentialProviderChain_spec.lua @ 70: CredentialProviderChain gets default providers if not specified (0.08 ms)
[----------] 3 tests from spec/03-credentials/05-CredentialProviderChain_spec.lua (35.06 ms total)

[----------] Running tests from spec/03-credentials/06-ChainableTemporaryCredentials_spec.lua
[ RUN      ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 17: ChainableTemporaryCredentials new() creates a new instance when providing AWS-instance
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[       OK ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 17: ChainableTemporaryCredentials new() creates a new instance when providing AWS-instance (6.75 ms)
[ RUN      ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 33: ChainableTemporaryCredentials new() accepts params as a single entry array
[       OK ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 33: ChainableTemporaryCredentials new() accepts params as a single entry array (1.18 ms)
[ RUN      ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 49: ChainableTemporaryCredentials new() creates a new instance when providing STS-instance
[       OK ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 49: ChainableTemporaryCredentials new() creates a new instance when providing STS-instance (1.27 ms)
[ RUN      ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 65: ChainableTemporaryCredentials new() creates chained credentials from params-array
[       OK ] ...03-credentials/06-ChainableTemporaryCredentials_spec.lua @ 65: ChainableTemporaryCredentials new() creates chained credentials from params-array (1.93 ms)
[----------] 4 tests from spec/03-credentials/06-ChainableTemporaryCredentials_spec.lua (20.70 ms total)

[----------] Running tests from spec/03-credentials/07-TokenFileWebIdentityCredentials_spec.lua
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] ...-credentials/07-TokenFileWebIdentityCredentials_spec.lua @ 22: TokenFileWebIdentityCredentials gets the relevant environment variables
[       OK ] ...-credentials/07-TokenFileWebIdentityCredentials_spec.lua @ 22: TokenFileWebIdentityCredentials gets the relevant environment variables (0.12 ms)
2022/08/18 07:37:59 [error] 21342#0: *2 [lua] utils.lua:297: getCurrentRegion(): failed detecting current AWS region: unable to detect AWS region, all options failed, context: ngx.timer
[ RUN      ] ...-credentials/07-TokenFileWebIdentityCredentials_spec.lua @ 31: TokenFileWebIdentityCredentials options override defaults
[       OK ] ...-credentials/07-TokenFileWebIdentityCredentials_spec.lua @ 31: TokenFileWebIdentityCredentials options override defaults (0.13 ms)
[----------] 2 tests from spec/03-credentials/07-TokenFileWebIdentityCredentials_spec.lua (28.13 ms total)

[----------] Global test environment teardown.
[==========] 122 tests from 14 test files ran. (408.05 ms total)
[  PASSED  ] 119 tests.
[ SKIPPED  ] 3 tests, listed below:
[ SKIPPED  ] spec/02-requests/02-build_request_spec.lua @ 296: operations protocol ec2: querystring, uri, header and body params
[ SKIPPED  ] spec/02-requests/03-execute_spec.lua @ 1: No tests for execution yet
[ SKIPPED  ] spec/02-requests/04-sign_v4_spec.lua @ 1: No tests for signing v4 yet

 3 SKIPPED TESTS

@mayocream mayocream marked this pull request as ready for review August 18, 2022 07:41
@mayocream mayocream requested a review from Tieske August 18, 2022 07:58
@mayocream mayocream merged commit ce77fae into main Aug 19, 2022
@mayocream mayocream deleted the fix/lazy_load_api branch August 19, 2022 03:06
@Tieske
Copy link
Member

Tieske commented Aug 31, 2022

@mayocream 👍 thx! this lazy loading should have been a concern from day one, considering the size of the entire API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants