private void parseContainerJson()

in aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/plugins/ECSMetadataFetcher.java [87:118]


    private void parseContainerJson(JsonParser parser, Map<ECSContainerMetadata, String> result) throws IOException {
        if (!parser.isExpectedStartObjectToken()) {
            logger.warn("Container metadata endpoint returned invalid JSON");
            return;
        }

        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String value = parser.nextTextValue();
            switch (parser.getCurrentName()) {
                case "LogDriver":
                    result.put(ECSContainerMetadata.LOG_DRIVER, value);
                    break;
                case "ContainerARN":
                    result.put(ECSContainerMetadata.CONTAINER_ARN, value);
                    break;
                case "awslogs-group":
                    result.put(ECSContainerMetadata.LOG_GROUP_NAME, value);
                    break;
                case "awslogs-region":
                    result.put(ECSContainerMetadata.LOG_GROUP_REGION, value);
                    break;
                case "LogOptions":
                    parseContainerJson(parser, result);  // Parse the LogOptions object for log fields
                    break;
                default:
                    parser.skipChildren();
            }
            if (result.size() == ECSContainerMetadata.values().length) {
                return;
            }
        }
    }