DescribeMigrationJobsResult.cc 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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/dts/model/DescribeMigrationJobsResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Dts;
  19. using namespace AlibabaCloud::Dts::Model;
  20. DescribeMigrationJobsResult::DescribeMigrationJobsResult() :
  21. ServiceResult()
  22. {}
  23. DescribeMigrationJobsResult::DescribeMigrationJobsResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. DescribeMigrationJobsResult::~DescribeMigrationJobsResult()
  29. {}
  30. void DescribeMigrationJobsResult::parse(const std::string &payload)
  31. {
  32. Json::Reader reader;
  33. Json::Value value;
  34. reader.parse(payload, value);
  35. setRequestId(value["RequestId"].asString());
  36. auto allMigrationJobsNode = value["MigrationJobs"]["MigrationJob"];
  37. for (auto valueMigrationJobsMigrationJob : allMigrationJobsNode)
  38. {
  39. MigrationJob migrationJobsObject;
  40. if(!valueMigrationJobsMigrationJob["MigrationJobName"].isNull())
  41. migrationJobsObject.migrationJobName = valueMigrationJobsMigrationJob["MigrationJobName"].asString();
  42. if(!valueMigrationJobsMigrationJob["MigrationJobStatus"].isNull())
  43. migrationJobsObject.migrationJobStatus = valueMigrationJobsMigrationJob["MigrationJobStatus"].asString();
  44. if(!valueMigrationJobsMigrationJob["MigrationJobClass"].isNull())
  45. migrationJobsObject.migrationJobClass = valueMigrationJobsMigrationJob["MigrationJobClass"].asString();
  46. if(!valueMigrationJobsMigrationJob["MigrationJobID"].isNull())
  47. migrationJobsObject.migrationJobID = valueMigrationJobsMigrationJob["MigrationJobID"].asString();
  48. if(!valueMigrationJobsMigrationJob["PayType"].isNull())
  49. migrationJobsObject.payType = valueMigrationJobsMigrationJob["PayType"].asString();
  50. auto allMigrationObjectNode = valueMigrationJobsMigrationJob["MigrationObject"]["SynchronousObject"];
  51. for (auto valueMigrationJobsMigrationJobMigrationObjectSynchronousObject : allMigrationObjectNode)
  52. {
  53. MigrationJob::SynchronousObject migrationObjectObject;
  54. if(!valueMigrationJobsMigrationJobMigrationObjectSynchronousObject["DatabaseName"].isNull())
  55. migrationObjectObject.databaseName = valueMigrationJobsMigrationJobMigrationObjectSynchronousObject["DatabaseName"].asString();
  56. if(!valueMigrationJobsMigrationJobMigrationObjectSynchronousObject["WholeDatabase"].isNull())
  57. migrationObjectObject.wholeDatabase = valueMigrationJobsMigrationJobMigrationObjectSynchronousObject["WholeDatabase"].asString();
  58. auto allTableList = value["TableList"]["Table"];
  59. for (auto value : allTableList)
  60. migrationObjectObject.tableList.push_back(value.asString());
  61. migrationJobsObject.migrationObject.push_back(migrationObjectObject);
  62. }
  63. auto sourceEndpointNode = value["SourceEndpoint"];
  64. if(!sourceEndpointNode["OracleSID"].isNull())
  65. migrationJobsObject.sourceEndpoint.oracleSID = sourceEndpointNode["OracleSID"].asString();
  66. if(!sourceEndpointNode["DatabaseName"].isNull())
  67. migrationJobsObject.sourceEndpoint.databaseName = sourceEndpointNode["DatabaseName"].asString();
  68. if(!sourceEndpointNode["InstanceID"].isNull())
  69. migrationJobsObject.sourceEndpoint.instanceID = sourceEndpointNode["InstanceID"].asString();
  70. if(!sourceEndpointNode["InstanceType"].isNull())
  71. migrationJobsObject.sourceEndpoint.instanceType = sourceEndpointNode["InstanceType"].asString();
  72. if(!sourceEndpointNode["IP"].isNull())
  73. migrationJobsObject.sourceEndpoint.iP = sourceEndpointNode["IP"].asString();
  74. if(!sourceEndpointNode["Port"].isNull())
  75. migrationJobsObject.sourceEndpoint.port = sourceEndpointNode["Port"].asString();
  76. if(!sourceEndpointNode["UserName"].isNull())
  77. migrationJobsObject.sourceEndpoint.userName = sourceEndpointNode["UserName"].asString();
  78. if(!sourceEndpointNode["EngineName"].isNull())
  79. migrationJobsObject.sourceEndpoint.engineName = sourceEndpointNode["EngineName"].asString();
  80. auto destinationEndpointNode = value["DestinationEndpoint"];
  81. if(!destinationEndpointNode["OracleSID"].isNull())
  82. migrationJobsObject.destinationEndpoint.oracleSID = destinationEndpointNode["OracleSID"].asString();
  83. if(!destinationEndpointNode["DatabaseName"].isNull())
  84. migrationJobsObject.destinationEndpoint.databaseName = destinationEndpointNode["DatabaseName"].asString();
  85. if(!destinationEndpointNode["InstanceID"].isNull())
  86. migrationJobsObject.destinationEndpoint.instanceID = destinationEndpointNode["InstanceID"].asString();
  87. if(!destinationEndpointNode["InstanceType"].isNull())
  88. migrationJobsObject.destinationEndpoint.instanceType = destinationEndpointNode["InstanceType"].asString();
  89. if(!destinationEndpointNode["IP"].isNull())
  90. migrationJobsObject.destinationEndpoint.iP = destinationEndpointNode["IP"].asString();
  91. if(!destinationEndpointNode["Port"].isNull())
  92. migrationJobsObject.destinationEndpoint.port = destinationEndpointNode["Port"].asString();
  93. if(!destinationEndpointNode["UserName"].isNull())
  94. migrationJobsObject.destinationEndpoint.userName = destinationEndpointNode["UserName"].asString();
  95. if(!destinationEndpointNode["EngineName"].isNull())
  96. migrationJobsObject.destinationEndpoint.engineName = destinationEndpointNode["EngineName"].asString();
  97. auto migrationModeNode = value["MigrationMode"];
  98. if(!migrationModeNode["DataInitialization"].isNull())
  99. migrationJobsObject.migrationMode.dataInitialization = migrationModeNode["DataInitialization"].asString() == "true";
  100. if(!migrationModeNode["DataSynchronization"].isNull())
  101. migrationJobsObject.migrationMode.dataSynchronization = migrationModeNode["DataSynchronization"].asString() == "true";
  102. if(!migrationModeNode["StructureInitialization"].isNull())
  103. migrationJobsObject.migrationMode.structureInitialization = migrationModeNode["StructureInitialization"].asString() == "true";
  104. auto precheckNode = value["Precheck"];
  105. if(!precheckNode["Status"].isNull())
  106. migrationJobsObject.precheck.status = precheckNode["Status"].asString();
  107. if(!precheckNode["Percent"].isNull())
  108. migrationJobsObject.precheck.percent = precheckNode["Percent"].asString();
  109. auto structureInitializationNode = value["StructureInitialization"];
  110. if(!structureInitializationNode["Percent"].isNull())
  111. migrationJobsObject.structureInitialization.percent = structureInitializationNode["Percent"].asString();
  112. if(!structureInitializationNode["Progress"].isNull())
  113. migrationJobsObject.structureInitialization.progress = structureInitializationNode["Progress"].asString();
  114. if(!structureInitializationNode["status"].isNull())
  115. migrationJobsObject.structureInitialization.status = structureInitializationNode["status"].asString();
  116. if(!structureInitializationNode["ErrorMessage"].isNull())
  117. migrationJobsObject.structureInitialization.errorMessage = structureInitializationNode["ErrorMessage"].asString();
  118. auto dataInitializationNode = value["DataInitialization"];
  119. if(!dataInitializationNode["Percent"].isNull())
  120. migrationJobsObject.dataInitialization.percent = dataInitializationNode["Percent"].asString();
  121. if(!dataInitializationNode["Progress"].isNull())
  122. migrationJobsObject.dataInitialization.progress = dataInitializationNode["Progress"].asString();
  123. if(!dataInitializationNode["status"].isNull())
  124. migrationJobsObject.dataInitialization.status = dataInitializationNode["status"].asString();
  125. if(!dataInitializationNode["ErrorMessage"].isNull())
  126. migrationJobsObject.dataInitialization.errorMessage = dataInitializationNode["ErrorMessage"].asString();
  127. auto dataSynchronizationNode = value["DataSynchronization"];
  128. if(!dataSynchronizationNode["Delay"].isNull())
  129. migrationJobsObject.dataSynchronization.delay = dataSynchronizationNode["Delay"].asString();
  130. if(!dataSynchronizationNode["Percent"].isNull())
  131. migrationJobsObject.dataSynchronization.percent = dataSynchronizationNode["Percent"].asString();
  132. if(!dataSynchronizationNode["status"].isNull())
  133. migrationJobsObject.dataSynchronization.status = dataSynchronizationNode["status"].asString();
  134. if(!dataSynchronizationNode["ErrorMessage"].isNull())
  135. migrationJobsObject.dataSynchronization.errorMessage = dataSynchronizationNode["ErrorMessage"].asString();
  136. migrationJobs_.push_back(migrationJobsObject);
  137. }
  138. if(!value["PageNumber"].isNull())
  139. pageNumber_ = std::stoi(value["PageNumber"].asString());
  140. if(!value["PageRecordCount"].isNull())
  141. pageRecordCount_ = std::stoi(value["PageRecordCount"].asString());
  142. if(!value["TotalRecordCount"].isNull())
  143. totalRecordCount_ = std::stol(value["TotalRecordCount"].asString());
  144. }
  145. long DescribeMigrationJobsResult::getTotalRecordCount()const
  146. {
  147. return totalRecordCount_;
  148. }
  149. int DescribeMigrationJobsResult::getPageRecordCount()const
  150. {
  151. return pageRecordCount_;
  152. }
  153. int DescribeMigrationJobsResult::getPageNumber()const
  154. {
  155. return pageNumber_;
  156. }
  157. std::vector<DescribeMigrationJobsResult::MigrationJob> DescribeMigrationJobsResult::getMigrationJobs()const
  158. {
  159. return migrationJobs_;
  160. }