Skip to content

Conversation

@yunkon-kim
Copy link
Member

This PR refactors the Tumblebug client architecture and prepares the tracing system for OpenTelemetry integration.

Changes

Client Architecture Redesign

  • Implement a session-based pattern for request isolation
  • Add transport layer with caching and circuit breaker
  • Replace global client with factory-based sessions
  • Merge and manage test utility APIs in a file

Tracing Preparation

  • Add traceparent header handling for W3C Trace Context
    • Note - X-Request-Id will continue to be used for its intended purpose)
  • Maintain existing logging approach using context
  • Add context-aware SetTraceInfo() for OTel-ready trace propagation to downstream subsystems

These changes improve maintainability and prepare the codebase for future OpenTelemetry adoption.

- Implement session-based pattern for request isolation
- Add transport layer with caching and circuit breaker
- Replace global client with factory-based sessions
- Update all client usages across migration and recommendation
- Merge test utility APIs into test.go
- Add API response policy documentation
- Refresh test results with latest execution timestamps
- Add traceparent header handling in middleware
- Add SetTraceInfo() method to Tumblebug client
- Standardize trace_id/span_id context keys
- Update /test/tracing endpoint documentation
@yunkon-kim yunkon-kim requested a review from seokho-son as a code owner January 5, 2026 05:27
@cb-github-robot
Copy link
Member

API Change Report

The following API changes have been detected in this Pull Request compared to the base branch.

DeepDiffGo Report
Diff between:
  - Old: prev_spec.yaml [main(7d7b938)]
  - New: api/swagger.yaml [PR#296(ce65c04)]
=================
[*] GET /httpVersion
    * Response (200, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-string)
    + Response (200, body, model.ApiResponse-string, object) .success: Property added
    + Response (200, body, model.ApiResponse-string, object) .data: Property added
    + Response (200, body, model.ApiResponse-string, object) .error: Property added
    - Response (404, body, common.SimpleMsg, object): Response removed
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
[*] POST /migration/data
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    * Response (200, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-string)
    + Response (200, body, model.ApiResponse-string, object) .error: Property added
    + Response (200, body, model.ApiResponse-string, object) .success: Property added
    + Response (200, body, model.ApiResponse-string, object) .data: Property added
    * Response (400, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .success: Property added
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    - Response (404, body, common.SimpleMsg, object): Response removed
[*] GET /migration/middleware/objectStorage
    * Response (200, body, tbclient.ListAllMyBucketsResult, object): Structure changed (From: tbclient.ListAllMyBucketsResult, To: model.ApiResponse-tbclient_ListAllMyBucketsResult)
    - Response (200, body, tbclient.ListAllMyBucketsResult, object) .buckets: Property removed
    - Response (200, body, tbclient.ListAllMyBucketsResult, object) .owner: Property removed
    + Response (200, body, model.ApiResponse-tbclient_ListAllMyBucketsResult, object) .success: Property added
    + Response (200, body, model.ApiResponse-tbclient_ListAllMyBucketsResult, object) .data: Property added
    + Response (200, body, model.ApiResponse-tbclient_ListAllMyBucketsResult, object) .error: Property added
    + Response (200, body, model.ApiResponse-tbclient_ListAllMyBucketsResult, object) .message: Property added
    * Response (400, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .success: Property added
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
[*] POST /migration/middleware/objectStorage
    - Response (200, body): Response removed
    * Response (400, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .success: Property added
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (201, body): Response added
[*] DELETE /migration/middleware/objectStorage/{objectStorageName}
    - Response (200, body): Response removed
    * Response (400, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .success: Property added
    * Response (404, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (404, body, model.ApiResponse-any, object) .error: Property added
    + Response (404, body, model.ApiResponse-any, object) .success: Property added
    + Response (404, body, model.ApiResponse-any, object) .data: Property added
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (204, body): Response added
[*] GET /migration/middleware/objectStorage/{objectStorageName}
    * Response (200, body, tbclient.ListBucketResult, object): Structure changed (From: tbclient.ListBucketResult, To: model.ApiResponse-tbclient_ListBucketResult)
    - Response (200, body, tbclient.ListBucketResult, object) .isTruncated: Property removed
    - Response (200, body, tbclient.ListBucketResult, object) .marker: Property removed
    - Response (200, body, tbclient.ListBucketResult, object) .maxKeys: Property removed
    - Response (200, body, tbclient.ListBucketResult, object) .name: Property removed
    - Response (200, body, tbclient.ListBucketResult, object) .prefix: Property removed
    + Response (200, body, model.ApiResponse-tbclient_ListBucketResult, object) .data: Property added
    + Response (200, body, model.ApiResponse-tbclient_ListBucketResult, object) .error: Property added
    + Response (200, body, model.ApiResponse-tbclient_ListBucketResult, object) .message: Property added
    + Response (200, body, model.ApiResponse-tbclient_ListBucketResult, object) .success: Property added
    * Response (400, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .success: Property added
    * Response (404, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (404, body, model.ApiResponse-any, object) .success: Property added
    + Response (404, body, model.ApiResponse-any, object) .data: Property added
    + Response (404, body, model.ApiResponse-any, object) .error: Property added
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
[*] HEAD /migration/middleware/objectStorage/{objectStorageName}
    * Response (404, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (404, body, model.ApiResponse-any, object) .success: Property added
    + Response (404, body, model.ApiResponse-any, object) .data: Property added
    + Response (404, body, model.ApiResponse-any, object) .error: Property added
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    * Response (400, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .success: Property added
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
[*] GET /migration/ns/{nsId}/mci
    * Response (404, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
[*] POST /migration/ns/{nsId}/mci
    - Response (200, body, controller.MigrateInfraResponse, object): Response removed
    * Response (404, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
    + Response (201, body, controller.MigrateInfraResponse, object): Response added
[*] DELETE /migration/ns/{nsId}/mci/{mciId}
    * Response (200, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
    * Response (404, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
[*] GET /migration/ns/{nsId}/mci/{mciId}
    * Response (404, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
[*] POST /migration/ns/{nsId}/mciWithDefaults
    - Response (200, body, controller.MigrateInfraWithDefaultsResponse, object): Response removed
    - Response (404, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Response removed
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: github_com_cloud-barista_cm-beetle_pkg_api_rest_model.Response)
    + Response (201, body, controller.MigrateInfraWithDefaultsResponse, object): Response added
[*] POST /recommendation/middleware/objectStorage
    * Response (400, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .success: Property added
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    * Response (200, body, controller.RecommendObjectStorageResponse, object): Structure changed (From: controller.RecommendObjectStorageResponse, To: model.ApiResponse-controller_ObjectStorageInfo)
    - Response (200, body, controller.RecommendObjectStorageResponse, object) .description: Property removed
    - Response (200, body, controller.RecommendObjectStorageResponse, object) .status: Property removed
    - Response (200, body, controller.RecommendObjectStorageResponse, object) .targetCloud: Property removed
    - Response (200, body, controller.RecommendObjectStorageResponse, object) .targetObjectStorages: Property removed
    + Response (200, body, model.ApiResponse-controller_ObjectStorageInfo, object) .data: Property added
    + Response (200, body, model.ApiResponse-controller_ObjectStorageInfo, object) .error: Property added
    + Response (200, body, model.ApiResponse-controller_ObjectStorageInfo, object) .message: Property added
    + Response (200, body, model.ApiResponse-controller_ObjectStorageInfo, object) .success: Property added
[*] POST /recommendation/resources/securityGroups
    * Response (200, body, controller.RecommendSecurityGroupResponse, object): Structure changed (From: controller.RecommendSecurityGroupResponse, To: model.ApiResponse-cloudmodel_RecommendedSecurityGroupList)
    - Response (200, body, controller.RecommendSecurityGroupResponse, object) .targetSecurityGroupList: Property removed
    - Response (200, body, controller.RecommendSecurityGroupResponse, object) .count: Property removed
    - Response (200, body, controller.RecommendSecurityGroupResponse, object) .description: Property removed
    - Response (200, body, controller.RecommendSecurityGroupResponse, object) .status: Property removed
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedSecurityGroupList, object) .data: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedSecurityGroupList, object) .error: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedSecurityGroupList, object) .message: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedSecurityGroupList, object) .success: Property added
    - Response (404, body, common.SimpleMsg, object): Response removed
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object): Response added
[*] POST /recommendation/resources/vNet
    * Response (200, body, controller.RecommendVNetResponse, object): Structure changed (From: controller.RecommendVNetResponse, To: model.ApiResponse-cloudmodel_RecommendedVNetList)
    - Response (200, body, controller.RecommendVNetResponse, object) .description: Property removed
    - Response (200, body, controller.RecommendVNetResponse, object) .targetVNetList: Property removed
    - Response (200, body, controller.RecommendVNetResponse, object) .count: Property removed
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVNetList, object) .error: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVNetList, object) .message: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVNetList, object) .success: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVNetList, object) .data: Property added
    - Response (404, body, common.SimpleMsg, object): Response removed
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (400, body, model.ApiResponse-any, object): Response added
[*] POST /recommendation/resources/vmOsImages
    * Response (200, body, controller.RecommendVmOsImageResponse, object): Structure changed (From: controller.RecommendVmOsImageResponse, To: model.ApiResponse-cloudmodel_RecommendedVmOsImageList)
    - Response (200, body, controller.RecommendVmOsImageResponse, object) .count: Property removed
    - Response (200, body, controller.RecommendVmOsImageResponse, object) .description: Property removed
    - Response (200, body, controller.RecommendVmOsImageResponse, object) .recommendedVmOsImageList: Property removed
    - Response (200, body, controller.RecommendVmOsImageResponse, object) .status: Property removed
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmOsImageList, object) .message: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmOsImageList, object) .success: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmOsImageList, object) .data: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmOsImageList, object) .error: Property added
    - Response (404, body, common.SimpleMsg, object): Response removed
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object): Response added
[*] POST /recommendation/resources/vmSpecs
    * Response (500, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .success: Property added
    * Response (200, body, controller.RecommendVmSpecResponse, object): Structure changed (From: controller.RecommendVmSpecResponse, To: model.ApiResponse-cloudmodel_RecommendedVmSpecList)
    - Response (200, body, controller.RecommendVmSpecResponse, object) .status: Property removed
    - Response (200, body, controller.RecommendVmSpecResponse, object) .count: Property removed
    - Response (200, body, controller.RecommendVmSpecResponse, object) .description: Property removed
    - Response (200, body, controller.RecommendVmSpecResponse, object) .recommendedVmSpecList: Property removed
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmSpecList, object) .data: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmSpecList, object) .error: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmSpecList, object) .message: Property added
    + Response (200, body, model.ApiResponse-cloudmodel_RecommendedVmSpecList, object) .success: Property added
    - Response (404, body, common.SimpleMsg, object): Response removed
    + Response (400, body, model.ApiResponse-any, object): Response added
[*] POST /report/migration/ns/{nsId}/mci/{mciId}
    * Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: model.ApiResponse-any)
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .details: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .list: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .object: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .text: Property removed
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .message: Property added
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: model.ApiResponse-any)
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .list: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .object: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .text: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .details: Property removed
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .message: Property added
[*] POST /summary/source
    * Response (200, body): Type changed (From: , To: object)
    * Response (200, body): Structure changed (From: , To: model.ApiResponse-summary_SourceInfraSummary)
    + Response (200, body, model.ApiResponse-summary_SourceInfraSummary, object) .error: Property added
    + Response (200, body, model.ApiResponse-summary_SourceInfraSummary, object) .message: Property added
    + Response (200, body, model.ApiResponse-summary_SourceInfraSummary, object) .success: Property added
    + Response (200, body, model.ApiResponse-summary_SourceInfraSummary, object) .data: Property added
    * Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: model.ApiResponse-any)
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .text: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .details: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .list: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .object: Property removed
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    + Response (400, body, model.ApiResponse-any, object) .message: Property added
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: model.ApiResponse-any)
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .details: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .list: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .object: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .text: Property removed
    + Response (500, body, model.ApiResponse-any, object) .message: Property added
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
[*] GET /summary/target/ns/{nsId}/mci/{mciId}
    * Response (200, body): Type changed (From: , To: object)
    * Response (200, body): Structure changed (From: , To: model.ApiResponse-summary_TargetInfraSummary)
    + Response (200, body, model.ApiResponse-summary_TargetInfraSummary, object) .success: Property added
    + Response (200, body, model.ApiResponse-summary_TargetInfraSummary, object) .data: Property added
    + Response (200, body, model.ApiResponse-summary_TargetInfraSummary, object) .error: Property added
    + Response (200, body, model.ApiResponse-summary_TargetInfraSummary, object) .message: Property added
    * Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: model.ApiResponse-any)
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .details: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .list: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .object: Property removed
    - Response (400, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .text: Property removed
    + Response (400, body, model.ApiResponse-any, object) .message: Property added
    + Response (400, body, model.ApiResponse-any, object) .data: Property added
    + Response (400, body, model.ApiResponse-any, object) .error: Property added
    - Response (404, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Response removed
    * Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object): Structure changed (From: github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, To: model.ApiResponse-any)
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .object: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .text: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .details: Property removed
    - Response (500, body, github_com_cloud-barista_cm-beetle_pkg_api_rest_model_beetle.Response, object) .list: Property removed
    + Response (500, body, model.ApiResponse-any, object) .data: Property added
    + Response (500, body, model.ApiResponse-any, object) .error: Property added
    + Response (500, body, model.ApiResponse-any, object) .message: Property added
[*] GET /test/tracing
    + Request (header, traceparent): Parameter 'traceparent' (header) added
    * Response (200, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-string)
    + Response (200, body, model.ApiResponse-string, object) .success: Property added
    + Response (200, body, model.ApiResponse-string, object) .data: Property added
    + Response (200, body, model.ApiResponse-string, object) .error: Property added
    * Response (503, body, common.SimpleMsg, object): Structure changed (From: common.SimpleMsg, To: model.ApiResponse-any)
    + Response (503, body, model.ApiResponse-any, object) .success: Property added
    + Response (503, body, model.ApiResponse-any, object) .data: Property added
    + Response (503, body, model.ApiResponse-any, object) .error: Property added

@yunkon-kim
Copy link
Member Author

/approve

@github-actions github-actions bot added the approved This PR is approved and will be merged soon. label Jan 5, 2026
@cb-github-robot cb-github-robot merged commit 805277d into cloud-barista:main Jan 5, 2026
3 checks passed
@yunkon-kim yunkon-kim deleted the 251230-11 branch January 5, 2026 05:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved This PR is approved and will be merged soon.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants