F5Networks / f5-appsvcs-extension

F5 BIG-IP Application Services 3 Extension
Apache License 2.0
163 stars 52 forks source link

3.49 regression, cannot have empty remark on pool member #805

Open lm-sig opened 4 months ago

lm-sig commented 4 months ago

Environment

Summary

With version 3.48 and older you could have a pool member with "remark" set to an empty string. Starting with version 3.49.0 the same JSON payload results in an error returned from BIG-IP.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Submit the following declaration:
    {"class": "AS3", "action": "deploy", "persist": true, "declaration": {"class": "ADC", "schemaVersion": "3.16.0", "id": "test-declaration-0", "label": "Test Declaration 0", "remark": "Test Declaration for F5 Support Case Apps", "F5_Support_Case_Acpt": {"class": "Tenant", "case_NEW": {"class": "Application", "template": "generic", "vs_case_NEW-acpt-llb.example.com": {"class": "Service_HTTP", "remark": "F5 Support Ticket NEW", "virtualAddresses": ["10.127.0.99"], "virtualPort": 80, "persistenceMethods": [{"bigip": "/Common/cookie_encrypt"}], "fallbackPersistenceMethod": {"bigip": "/Common/source_addr"}, "pool": "case_NEW_acpt_pool", "iRules": []}, "case_NEW_acpt_pool": {"class": "Pool", "monitors": ["tcp"], "members": [{"remark": "", "servicePort": 443, "serverAddresses": ["10.0.0.99"], "priorityGroup": 0, "shareNodes": true, "adminState": "enable"}]}}}}}

You will see a successful application of the declaration.

  1. Submit the same declaration a second time.

  2. Observe the following error response:

    {
    "code": 422,
    "message": "declaration failed",
    "response": "01020066:3: The requested Pool Member (/F5_Support_Case_Acpt/case_NEW/case_NEW_acpt_pool /Common/10.0.0.99 443) already exists in partition F5_Support_Case_Acpt.",
    "host": "localhost",
    "tenant": "F5_Support_Case_Acpt",
    "runTime": 7819
    }

Expected Behavior

The JSON payload should either be accepted as it was before or a different type of error message should be generated.

Actual Behavior

The pool is not updated. Error is returned.

mdditt2000 commented 4 months ago

@lm-sig please contact me at automation_toolchain_pm@f5.com so i can link this bug fix to a customer name

dstokesf5 commented 4 months ago

Temporarily adding the untriaged label for workflow debugging.

m-kratochvil commented 4 months ago

We are hit with the same issue after upgrade to AS3 3.49 recently. I would much appreciate if this could be prioritized on your side @dstokesf5 @mdditt2000 I believe you know the customer name by now ;-) But I'll send an email as well..

I created a separate case ( #807 ) after all, because I noticed we do not use empty remark on the pool member so the symptom does not exactly match. But the error "pool member already exists" does match one of the two errors we observe after the upgrade to 3.49