Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with parsing a list of unnamed maps in ltm profile fix #51

Closed
jszczepanskif5 opened this issue Sep 13, 2021 · 2 comments
Closed
Labels
bug Something isn't working jira Jira created for this issue
Milestone

Comments

@jszczepanskif5
Copy link

Environment

  • Application Services Version: 1.14.0
  • BIG-IP Version: N/A

Summary

Currently in a spot where config contains a list of unnamed maps as shown below, only the last one is being added in the output as3 declaration. I currently know of only one as3-supported field formatted like this - in ltm profile fix; unsure if there are any other.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Convert following config:
ltm profile fix /datagroups/application_1/profileFIXcustom {
    app-service none
    defaults-from /Common/fix
    description none
    error-action drop-connection
    full-logon-parsing false
    message-log-publisher /Common/local-db-publisher
    quick-parsing true
    report-log-publisher /Common/local-db-publisher
    response-parsing true
    sender-tag-class {
        {
            sender-id RefInternalDG
            tag-map-class /Common/dataGroupRefInternal
        }
        {
            sender-id RefExternalDG
            tag-map-class /Common/dataGroupRefExternal
        }
    }
    statistics-sample-interval 45
}

  1. Observe the following output
{
    "class": "ADC",
    "schemaVersion": "3.29.0",
    "id": "urn:uuid:2fe3e5cd-cde9-4558-9480-8387f6fa9950",
    "label": "Converted Declaration",
    "remark": "Auto-generated by AS3 Config Converter",
    "datagroups": {
        "class": "Tenant",
        "application_1": {
            "class": "Application",
            "template": "generic",
            "profileFIXcustom": {
                "parentProfile": {
                    "bigip": "/Common/fix"
                },
                "remark": "none",
                "errorAction": "drop-connection",
                "fullLogonParsingEnabled": false,
                "messageLogPublisher": {
                    "bigip": "/Common/local-db-publisher"
                },
                "quickParsingEnabled": true,
                "reportLogPublisher": {
                    "bigip": "/Common/local-db-publisher"
                },
                "responseParsingEnabled": true,
                "senderTagMappingList": [
                    {
                        "senderId": "RefExternalDG",
                        "tagDataGroup": {
                            "use": "/Common/Shared/dataGroupRefExternal"
                        }
                    }
                ],
                "statisticsSampleInterval": 45,
                "class": "FIX_Profile"
            }
        }
    }
}

Notice how the SenderTagMappingList field contains only one entry.

Expected Behavior

SenderTagMappingList should include references to both data groups.

<...>
                "senderTagMappingList": [
                    {
                        "senderId": "RefInternalDG",
                        "tagDataGroup": {
                            "use": "/Common/Shared/dataGroupRefInternal"
                        }
                    },
                    {
                        "senderId": "RefExternalDG",
                        "tagDataGroup": {
                            "use": "/Common/Shared/dataGroupRefExternal"
                        }
                    }
                ],
<...>

Actual Behavior

Only one key is included as shown in the example above above.

Note how in the 'recognized' (parsed?) config json returned via the api, only one field is present as well:

<...>
    "recognized": {
        "ltm profile fix /tenant_1/application_1/profileFIXcustom": {
            "app-service": "none",
            "defaults-from": "/Common/fix",
            "description": "none",
            "error-action": "drop-connection",
            "full-logon-parsing": "false",
            "message-log-publisher": "/Common/local-db-publisher",
            "quick-parsing": "true",
            "report-log-publisher": "/Common/local-db-publisher",
            "response-parsing": "true",
            "sender-tag-class": {
                "": {
                    "sender-id": "RefExternalDG",
                    "tag-map-class": "/tenant_1/application_1/dataGroupRefExternal"
                }
            },
            "statistics-sample-interval": "45"
        },
    }
<...>

Likely just an issue with the parser overwriting 'duplicate' empty keys in the sender-tag-class collection.

@jszczepanskif5 jszczepanskif5 added the bug Something isn't working label Sep 13, 2021
@mdditt2000
Copy link

Create internal issue CHARON-450 for PM tracking.

@mdditt2000 mdditt2000 added the jira Jira created for this issue label Sep 13, 2021
@mdditt2000 mdditt2000 added this to the 1.15 milestone Sep 15, 2021
@mdditt2000
Copy link

Resolved

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working jira Jira created for this issue
Projects
None yet
Development

No branches or pull requests

2 participants