f5-appsvcs-extension
                                
                                
                                
                                    f5-appsvcs-extension copied to clipboard
                            
                            
                            
                        BIG IP LTM AS3 GET API Method
Environment
- Application Services Version: AS3 v18
 - BIG-IP Version: 15.1.2
 
Summary
A clear and concise description of what the bug is. Please also include information about the reproducibility and the severity/impact of the issue.
Hi,
I've installed AS3 onto 1 of our test F5 devices as we wanted to explore the API capabilities. I followed this KB https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/quick-start.html and was able to successfully do POST calls creating new tenants/partition, VIPs, pools and pool members. The test F5 device that I am using has an existing tenant/partition already and my POST call involves creating new partition/tenant. No issues with POST.
However when I try to do a GET using https://<IP add of F5 device>/mgmt/shared/appsvcs/declare?show=full, the set of records returned only show the VIPs and VIP config for the new partition that I created. I do not get any of the existing VIPs that are in the other existing partition/tenant already.
Steps To Reproduce
- I do a GET call using https://<IP Add of F5 device>/mgmt/shared/appsvcs/declare?show=full
 - I only get the payload below:
 
{
    "Sample_01": {
        "class": "Tenant",
        "A1": {
            "class": "Application",
            "service": {
                "class": "Service_HTTP",
                "virtualAddresses": [
                    "10.0.1.10"
                ],
                "pool": "web_pool",
                "virtualPort": 80,
                "persistenceMethods": [
                    "cookie"
                ],
                "profileHTTP": "basic",
                "virtualType": "standard",
                "layer4": "tcp",
                "profileTCP": "normal",
                "serviceDownImmediateAction": "none",
                "shareAddresses": false,
                "enable": true,
                "maxConnections": 0,
                "snat": "auto",
                "addressStatus": true,
                "mirroring": "none",
                "lastHop": "default",
                "translateClientPort": false,
                "translateServerAddress": true,
                "translateServerPort": true,
                "nat64Enabled": false,
                "httpMrfRoutingEnabled": false,
                "rateLimit": 0
            },
            "web_pool": {
                "class": "Pool",
                "monitors": [
                    "http"
                ],
                "members": [
                    {
                        "servicePort": 80,
                        "serverAddresses": [
                            "192.0.1.10",
                            "192.0.1.11"
                        ],
                        "enable": true,
                        "connectionLimit": 0,
                        "rateLimit": -1,
                        "dynamicRatio": 1,
                        "ratio": 1,
                        "priorityGroup": 0,
                        "adminState": "enable",
                        "addressDiscovery": "static",
                        "shareNodes": false
                    }
                ],
                "allowNATEnabled": true,
                "allowSNATEnabled": true,
                "loadBalancingMode": "round-robin",
                "minimumMembersActive": 1,
                "reselectTries": 0,
                "serviceDownAction": "none",
                "slowRampTime": 10,
                "minimumMonitors": 1
            },
            "template": "generic",
            "enable": true
        },
        "addService": {
            "class": "Application",
            "template": "generic",
            "addService": {
                "class": "Service_HTTP",
                "virtualAddresses": [
                    "10.0.1.50"
                ],
                "pool": "addServicePool",
                "virtualPort": 80,
                "persistenceMethods": [
                    "cookie"
                ],
                "profileHTTP": "basic",
                "virtualType": "standard",
                "layer4": "tcp",
                "profileTCP": "normal",
                "serviceDownImmediateAction": "none",
                "shareAddresses": false,
                "enable": true,
                "maxConnections": 0,
                "snat": "auto",
                "addressStatus": true,
                "mirroring": "none",
                "lastHop": "default",
                "translateClientPort": false,
                "translateServerAddress": true,
                "translateServerPort": true,
                "nat64Enabled": false,
                "httpMrfRoutingEnabled": false,
                "rateLimit": 0
            },
            "addServicePool": {
                "class": "Pool",
                "members": [
                    {
                        "servicePort": 80,
                        "serverAddresses": [
                            "192.0.1.50",
                            "192.0.1.51"
                        ],
                        "enable": true,
                        "connectionLimit": 0,
                        "rateLimit": -1,
                        "dynamicRatio": 1,
                        "ratio": 1,
                        "priorityGroup": 0,
                        "adminState": "enable",
                        "addressDiscovery": "static",
                        "shareNodes": false
                    }
                ],
                "allowNATEnabled": true,
                "allowSNATEnabled": true,
                "loadBalancingMode": "round-robin",
                "minimumMembersActive": 1,
                "reselectTries": 0,
                "serviceDownAction": "none",
                "slowRampTime": 10
            },
            "enable": true
        },
        "enable": true,
        "defaultRouteDomain": 0,
        "optimisticLockKey": ""
    },
    "class": "ADC",
    "schemaVersion": "3.0.0",
    "id": "urn:uuid:33045210-3ab8-4636-9b2a-c98d22ab915d",
    "label": "Sample 1",
    "remark": "Simple HTTP Service with Round-Robin Load Balancing",
    "updateMode": "selective",
    "controls": {
        "archiveTimestamp": "2022-06-06T02:24:28.926Z",
        "class": "Controls",
        "logLevel": "error",
        "trace": false,
        "traceResponse": false,
        "dryRun": false
    }
}
This only contains the VIPs in 1 tenant/partition (Sample_01). I have another partition that is already existing (partition Common) and I don't get the VIPs in that existing partition. That's the issue that I need your help on.
Expected Behavior
A clear and concise description of what you expected to happen. I am expecting after doing a GET call https://<IP Add>/mgmt/shared/appsvcs/declare?show=full that I should receive the list of all VIPs in all partitions in that F5 device.
Actual Behavior
A clear and concise description of what actually happens. Please include any applicable error output.
I am only getting the VIPs in the partition (Sample_01) and not any VIPs from the other partition (Common) . See attached files for additional information.
@joycecgsangalang please can you update AS3 to a later version. Recommend AS3-37 or AS3-36-1 which is a LTS release "long term support"
Let us know if this issue remains. TY
@joycecgsangalang sorry touching many GitHub issues this morning.
After re-reading your Git issue i noticed your looking to retrieve another partition that already existing. If this partition/configuration was originally configured via the UI or TMSH you CANNOT retrieve via AS3. Only objects configured using AS3 can be retrieved via AS3. Hope this answers your question. Only getting the VIPs in the partition (Sample_01) and not any VIPs from the other partition (Common) is working correctly.
@joycecgsangalang Is the missing configuration on a GET request configuration that was created with something other than AS3?
Proprietary
Yes it was created using configuration utility.
Joyce C. Guerrero Application Delivery Controllers Product Manager MSD IT | Network Services | Cloud Networking & Application Delivery
From: Daniel Stokes @.> Sent: Friday, July 8, 2022 6:09 AM To: F5Networks/f5-appsvcs-extension @.> Cc: Guerrero, Joyce @.>; Mention @.> Subject: Re: [F5Networks/f5-appsvcs-extension] BIG IP LTM AS3 GET API Method (Issue #621)
EXTERNAL EMAIL - Use caution with any links or file attachments.
@joycecgsangalanghttps://github.com/joycecgsangalang Is the missing configuration on a GET request configuration that was created with something other than AS3?
Reply to this email directly, view it on GitHubhttps://github.com/F5Networks/f5-appsvcs-extension/issues/621#issuecomment-1178277276, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AZ2QNJ2GFSYH2F3PXCNLDOLVS5IOJANCNFSM52H4OTCQ. You are receiving this because you were mentioned.Message ID: @.@.>> This e-mail message, together with any attachments, contains information of Merck & Co., Inc. (126 East Lincoln Ave., P.O. Box 2000, Rahway, NJ USA 07065) and/or its affiliates, that may be confidential, proprietary copyrighted and/or legally privileged. (Direct contact information for affiliates is available at - Contact us - MSD https://www.msd.com/contact-us/.) It is intended solely for the use of the individual or entity named on this message. If you are not the intended recipient, and have received this message in error, please notify us immediately by reply e-mail and then delete it from your system.
HI @joycecgsangalang, would it be possible to setup a zoom, so we can go through how AS3 works. Please email us at [email protected]
thanks @sunitharonan @joycecgsangalang look forward to having a conversation!
Closing issue. AS3 is working as designed.
Proprietary
Hi Mark,
Only objects configured using AS3 can be retrieved via AS3 - I see, is there any F5 API that we can use so that we can retrieve existing F5 configuration data (i.e. VIP name, VIP basic config, Pool members) and allow it to be exposed to other applications? Is there anything in this F5 API stack F5 Cloud Docshttps://clouddocs.f5.com/ (snapshot below) that can address my needs? Thanks.
@.***
Joyce C. Guerrero Application Delivery Controllers Product Manager MSD IT | Network Services | Cloud Networking & Application Delivery
From: mark dittmer @.> Sent: Friday, July 1, 2022 2:30 AM To: F5Networks/f5-appsvcs-extension @.> Cc: Guerrero, Joyce @.>; Mention @.> Subject: Re: [F5Networks/f5-appsvcs-extension] BIG IP LTM AS3 GET API Method (Issue #621)
EXTERNAL EMAIL - Use caution with any links or file attachments.
@joycecgsangalanghttps://github.com/joycecgsangalang sorry touching many GitHub issues this morning.
After re-reading your Git issue i noticed your looking to retrieve another partition that already existing. If this partition/configuration was originally configured via the UI or TMSH you CANNOT retrieve via AS3. Only objects configured using AS3 can be retrieved via AS3. Hope this answers your question. Only getting the VIPs in the partition (Sample_01) and not any VIPs from the other partition (Common) is working correctly.
Reply to this email directly, view it on GitHubhttps://github.com/F5Networks/f5-appsvcs-extension/issues/621#issuecomment-1171543551, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AZ2QNJ22MML77P434WZHDILVRXRRTANCNFSM52H4OTCQ. You are receiving this because you were mentioned.Message ID: @.@.>> This e-mail message, together with any attachments, contains information of Merck & Co., Inc. (126 East Lincoln Ave., P.O. Box 2000, Rahway, NJ USA 07065) and/or its affiliates, that may be confidential, proprietary copyrighted and/or legally privileged. (Direct contact information for affiliates is available at - Contact us - MSD https://www.msd.com/contact-us/.) It is intended solely for the use of the individual or entity named on this message. If you are not the intended recipient, and have received this message in error, please notify us immediately by reply e-mail and then delete it from your system.