Skip to content

Service_L4 persistenceMethods blank none error #29

Description

@JeffGiroux

I'm trying to have a runtime init yaml install and declare AS3 with a Service_L4 service. I want persistence None, but the default for Service_L4 is sourceIP. No matter what combination I try, runtime init keeps failing.

From reading the docs on AS3, you can supply an empty array with empty brackets [], but I tried and it failed.

BIG-IP version = 15.1.0.2
Runtime init = 1.3.2

Expected Behavior

I want to deploy a Service_L4 with persistence none in runtime init with this type of AS3 json. Notice a blank array for persistence methods.

{
    "class": "ADC",
    "schemaVersion": "3.0.0",
    "tenant": {
        "class": "Tenant",
        "application": {
            "class": "Application",
            "service": {
                "class": "Service_L4",
                "virtualPort": 1701,
                "virtualAddresses": [
                    "0.0.0.0/0"
                ],
                "persistenceMethods": []
            }
        }
    }
}

Actual Behavior

Tried various ways to set persistence none in runtime init as3 yaml, but error.

              forwarder_tcp_ipv4_1701-to-25:
                class: Service_L4
                remark: Forwarding port 1701-to-25 IPv4
                allowVlans:
                  - internal
                virtualAddresses:
                  - '0.0.0.0/0'
                virtualPort: 1701
                layer4: tcp
                profileL4: basic
                snat: auto
                persistenceMethods: []
                translateServerAddress: false
                translateServerPort: true
  1. tried with empty brackets
persistenceMethods: []
zzznextthingzzz:

error = error: {"code":422,"errors":["/Tenant1/App1/forwarder_tcp_ipv4_1701-to-25/persistenceMethods: should be array"],"declarationFullId":"","message":"declaration is invalid"}

  1. tried with 'none'
persistenceMethods:
 - none
zzznextthingzzz:

error = error: {"code":422,"errors":["/Tenant1/App1/forwarder_tcp_ipv4_1701-to-25/persistenceMethods/0: should be equal to one of the allowed values ["cookie","destination-address","msrdp","source-address","tls-session-id"]"],"declarationFullId":"","message":"declaration is invalid"}

  1. tried leaving blank
persistenceMethods:
zzznextthingzzz:

error = error: {"code":422,"errors":["/Tenant1/App1/forwarder_tcp_ipv4_1701-to-25/persistenceMethods: should be array"],"declarationFullId":"","message":"declaration is invalid"}

  1. tried with blank array
persistenceMethods:
 -
zzznextthingzzz:

error = error: {"code":422,"errors":["/Tenant1/App1/forwarder_tcp_ipv4_1701-to-25/persistenceMethods: should be array"],"declarationFullId":"","message":"declaration is invalid"}

Workaround

I use Service_Generic which has a default persistence of none. That way, I do not have to set 'none' which apparently cannot be set properly right now. Hence, new ticket :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions