DescribeETLJobResult.cc 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <alibabacloud/emr/model/DescribeETLJobResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Emr;
  19. using namespace AlibabaCloud::Emr::Model;
  20. DescribeETLJobResult::DescribeETLJobResult() :
  21. ServiceResult()
  22. {}
  23. DescribeETLJobResult::DescribeETLJobResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. DescribeETLJobResult::~DescribeETLJobResult()
  29. {}
  30. void DescribeETLJobResult::parse(const std::string &payload)
  31. {
  32. Json::CharReaderBuilder builder;
  33. Json::CharReader *reader = builder.newCharReader();
  34. Json::Value *val;
  35. Json::Value value;
  36. JSONCPP_STRING *errs;
  37. reader->parse(payload.data(), payload.data() + payload.size(), val, errs);
  38. value = *val;
  39. setRequestId(value["RequestId"].asString());
  40. auto allTriggerRuleList = value["TriggerRuleList"]["TriggerRule"];
  41. for (auto value : allTriggerRuleList)
  42. {
  43. TriggerRule triggerRuleListObject;
  44. if(!value["Enabled"].isNull())
  45. triggerRuleListObject.enabled = value["Enabled"].asString() == "true";
  46. if(!value["StartTime"].isNull())
  47. triggerRuleListObject.startTime = std::stol(value["StartTime"].asString());
  48. if(!value["EndTime"].isNull())
  49. triggerRuleListObject.endTime = std::stol(value["EndTime"].asString());
  50. if(!value["CronExpr"].isNull())
  51. triggerRuleListObject.cronExpr = value["CronExpr"].asString();
  52. triggerRuleList_.push_back(triggerRuleListObject);
  53. }
  54. auto allStageList = value["StageList"]["Stage"];
  55. for (auto value : allStageList)
  56. {
  57. Stage stageListObject;
  58. if(!value["StageName"].isNull())
  59. stageListObject.stageName = value["StageName"].asString();
  60. if(!value["StageType"].isNull())
  61. stageListObject.stageType = value["StageType"].asString();
  62. if(!value["StagePlugin"].isNull())
  63. stageListObject.stagePlugin = value["StagePlugin"].asString();
  64. if(!value["StageConf"].isNull())
  65. stageListObject.stageConf = value["StageConf"].asString();
  66. stageList_.push_back(stageListObject);
  67. }
  68. auto allStageConnectionList = value["StageConnectionList"]["StageConnection"];
  69. for (auto value : allStageConnectionList)
  70. {
  71. StageConnection stageConnectionListObject;
  72. if(!value["From"].isNull())
  73. stageConnectionListObject.from = value["From"].asString();
  74. if(!value["To"].isNull())
  75. stageConnectionListObject.to = value["To"].asString();
  76. if(!value["Port"].isNull())
  77. stageConnectionListObject.port = value["Port"].asString();
  78. stageConnectionList_.push_back(stageConnectionListObject);
  79. }
  80. auto clusterConfigNode = value["ClusterConfig"];
  81. if(!clusterConfigNode["IsOnDemand"].isNull())
  82. clusterConfig_.isOnDemand = clusterConfigNode["IsOnDemand"].asString() == "true";
  83. if(!clusterConfigNode["ClusterId"].isNull())
  84. clusterConfig_.clusterId = clusterConfigNode["ClusterId"].asString();
  85. if(!clusterConfigNode["Queue"].isNull())
  86. clusterConfig_.queue = clusterConfigNode["Queue"].asString();
  87. if(!clusterConfigNode["UserName"].isNull())
  88. clusterConfig_.userName = clusterConfigNode["UserName"].asString();
  89. if(!clusterConfigNode["RecordRate"].isNull())
  90. clusterConfig_.recordRate = std::stol(clusterConfigNode["RecordRate"].asString());
  91. if(!clusterConfigNode["SizeRate"].isNull())
  92. clusterConfig_.sizeRate = std::stol(clusterConfigNode["SizeRate"].asString());
  93. auto driverResourceNode = clusterConfigNode["DriverResource"];
  94. if(!driverResourceNode["Vcores"].isNull())
  95. clusterConfig_.driverResource.vcores = std::stoi(driverResourceNode["Vcores"].asString());
  96. if(!driverResourceNode["MemSize"].isNull())
  97. clusterConfig_.driverResource.memSize = std::stoi(driverResourceNode["MemSize"].asString());
  98. auto executorResourceNode = clusterConfigNode["ExecutorResource"];
  99. if(!executorResourceNode["Vcores"].isNull())
  100. clusterConfig_.executorResource.vcores = std::stoi(executorResourceNode["Vcores"].asString());
  101. if(!executorResourceNode["MemSize"].isNull())
  102. clusterConfig_.executorResource.memSize = std::stoi(executorResourceNode["MemSize"].asString());
  103. auto alertConfigNode = value["AlertConfig"];
  104. auto allItems = value["Items"]["Item"];
  105. for (auto value : allItems)
  106. {
  107. AlertConfig::Item itemObject;
  108. if(!value["Enable"].isNull())
  109. itemObject.enable = value["Enable"].asString() == "true";
  110. if(!value["EventId"].isNull())
  111. itemObject.eventId = value["EventId"].asString();
  112. auto allAlertUserGroupIdList = value["AlertUserGroupIdList"]["AlertUserGroupId"];
  113. for (auto value : allAlertUserGroupIdList)
  114. itemObject.alertUserGroupIdList.push_back(value.asString());
  115. auto allAlertDingDingGroupList = value["AlertDingDingGroupList"]["AlertDingDingGroup"];
  116. for (auto value : allAlertDingDingGroupList)
  117. itemObject.alertDingDingGroupList.push_back(value.asString());
  118. alertConfig_.items.push_back(itemObject);
  119. }
  120. if(!value["Id"].isNull())
  121. id_ = value["Id"].asString();
  122. if(!value["Name"].isNull())
  123. name_ = value["Name"].asString();
  124. if(!value["Description"].isNull())
  125. description_ = value["Description"].asString();
  126. if(!value["CategoryId"].isNull())
  127. categoryId_ = value["CategoryId"].asString();
  128. if(!value["Graph"].isNull())
  129. graph_ = value["Graph"].asString();
  130. }
  131. std::string DescribeETLJobResult::getCategoryId()const
  132. {
  133. return categoryId_;
  134. }
  135. std::string DescribeETLJobResult::getDescription()const
  136. {
  137. return description_;
  138. }
  139. std::string DescribeETLJobResult::getGraph()const
  140. {
  141. return graph_;
  142. }
  143. DescribeETLJobResult::AlertConfig DescribeETLJobResult::getAlertConfig()const
  144. {
  145. return alertConfig_;
  146. }
  147. std::vector<DescribeETLJobResult::StageConnection> DescribeETLJobResult::getStageConnectionList()const
  148. {
  149. return stageConnectionList_;
  150. }
  151. std::vector<DescribeETLJobResult::Stage> DescribeETLJobResult::getStageList()const
  152. {
  153. return stageList_;
  154. }
  155. std::vector<DescribeETLJobResult::TriggerRule> DescribeETLJobResult::getTriggerRuleList()const
  156. {
  157. return triggerRuleList_;
  158. }
  159. std::string DescribeETLJobResult::getId()const
  160. {
  161. return id_;
  162. }
  163. DescribeETLJobResult::ClusterConfig DescribeETLJobResult::getClusterConfig()const
  164. {
  165. return clusterConfig_;
  166. }
  167. std::string DescribeETLJobResult::getName()const
  168. {
  169. return name_;
  170. }