ecs_describeInstances_ft.cc 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #include <iostream>
  2. #include "../utils.h"
  3. #include "gtest/gtest.h"
  4. #include "alibabacloud/core/AlibabaCloud.h"
  5. #include "alibabacloud/ecs/EcsClient.h"
  6. #include "alibabacloud/core/CommonClient.h"
  7. #include "alibabacloud/core/CommonRequest.h"
  8. #include "alibabacloud/core/sts/StsClient.h"
  9. #include "alibabacloud/core/StsAssumeRoleCredentialsProvider.h"
  10. using namespace std;
  11. using namespace AlibabaCloud;
  12. using namespace AlibabaCloud::Ecs;
  13. namespace {
  14. TEST(ecs, describeInstances) {
  15. utUtils utils;
  16. string key = utils.get_env("ENV_AccessKeyId");
  17. string secret = utils.get_env("ENV_AccessKeySecret");
  18. InitializeSdk();
  19. ClientConfiguration configuration("cn-hangzhou");
  20. EcsClient client(key, secret, configuration);
  21. Model::DescribeInstancesRequest request;
  22. request.setPageSize(10);
  23. auto outcome = client.describeInstances(request);
  24. EXPECT_TRUE(outcome.isSuccess());
  25. EXPECT_TRUE(outcome.error().errorCode().empty());
  26. EXPECT_TRUE(outcome.result().getTotalCount() >= 0);
  27. ShutdownSdk();
  28. }
  29. TEST(ecs, deleteInstance) {
  30. utUtils utils;
  31. string key = utils.get_env("ENV_AccessKeyId");
  32. string secret = utils.get_env("ENV_AccessKeySecret");
  33. InitializeSdk();
  34. ClientConfiguration configuration("cn-hangzhou");
  35. EcsClient client(key, secret, configuration);
  36. Model::DeleteInstanceRequest delReq;
  37. delReq.setInstanceId("non-exist-ecs-instance");
  38. delReq.setForce(true);
  39. auto outcome = client.deleteInstance(delReq);
  40. EXPECT_TRUE(outcome.error().errorCode() == "InvalidInstanceId.NotFound");
  41. EXPECT_TRUE(outcome.error().errorMessage() == "The specified InstanceId does not exist.");
  42. ShutdownSdk();
  43. }
  44. TEST(ecs, describeInstancesViaCommonRequest) {
  45. utUtils utils;
  46. string key = utils.get_env("ENV_AccessKeyId");
  47. string secret = utils.get_env("ENV_AccessKeySecret");
  48. InitializeSdk();
  49. ClientConfiguration configuration("cn-hangzhou");
  50. CommonClient client(key, secret, configuration);
  51. CommonRequest request(CommonRequest::RpcPattern);
  52. request.setScheme("https");
  53. request.setDomain("ecs.aliyuncs.com");
  54. request.setHttpMethod(HttpRequest::Get);
  55. request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
  56. request.setVersion("2014-05-26");
  57. request.setQueryParameter("action", "DescribeInstances");
  58. auto outcome = client.commonResponse(request);
  59. EXPECT_TRUE(outcome.error().errorCode().empty());
  60. EXPECT_TRUE(outcome.result().payload().find("\"TotalCount\":") != string::npos);
  61. ShutdownSdk();
  62. }
  63. TEST(ecs, describeInstancesViaCommonRequestAndStsAssumeRole) {
  64. utUtils utils;
  65. const string sub_user_key = utils.get_env("ENV_AccessKeyId_AssumeRole");
  66. const string sub_user_secret = utils.get_env("ENV_AccessKeySecret_AssumeRole");
  67. const Credentials sub_user_credentials(sub_user_key, sub_user_secret);
  68. const string arn = "acs:ram::1940345800212929:role/testassumerole";
  69. const string session = "roleSessionName";
  70. const string policy = "";
  71. int duration = 1800;
  72. InitializeSdk();
  73. ClientConfiguration configuration("cn-hangzhou");
  74. StsAssumeRoleCredentialsProvider provider(sub_user_credentials, configuration, arn, session, policy, duration);
  75. Credentials assumed_role_credentials = provider.getCredentials();
  76. CommonClient client(assumed_role_credentials, configuration);
  77. CommonRequest request(CommonRequest::RpcPattern);
  78. request.setScheme("https");
  79. request.setDomain("ecs.aliyuncs.com");
  80. request.setHttpMethod(HttpRequest::Get);
  81. request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
  82. request.setVersion("2014-05-26");
  83. request.setQueryParameter("action", "DescribeInstances");
  84. auto outcome = client.commonResponse(request);
  85. EXPECT_TRUE(outcome.error().errorCode().empty());
  86. EXPECT_TRUE(outcome.result().payload().find("\"TotalCount\":") != string::npos);
  87. EXPECT_TRUE(outcome.result().payload().find("\"PageNumber\":") != string::npos);
  88. EXPECT_TRUE(outcome.result().payload().find("\"PageSize\":") != string::npos);
  89. EXPECT_TRUE(outcome.result().payload().find("\"Instances\":") != string::npos);
  90. ShutdownSdk();
  91. }
  92. }