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

Tenant declaration delete /Common/Shared from AS3 Declaration #443

Closed
BenEkpy opened this issue Apr 7, 2021 · 9 comments
Closed

Tenant declaration delete /Common/Shared from AS3 Declaration #443

BenEkpy opened this issue Apr 7, 2021 · 9 comments
Labels
bug Something isn't working
Milestone

Comments

@BenEkpy
Copy link

BenEkpy commented Apr 7, 2021

Environment

  • Application Services Version: 3.24
  • BIG-IP Version: 15.1

Summary

Application /Common/Shared disappear in AS3 Declaration after declaring a tenant that use object within /Common/Shared

Steps To Reproduce

Steps to reproduce the behavior:

  1. Declare pool in /Common/Shared
POST /mgmt/shared/appsvcs/declare

{
		"class": "ADC",
		"schemaVersion": "3.24.0",
		"updateMode": "selective",
		"Common": {
			"class": "Tenant",
			"Shared": { 
				"class": "Application",
				"template": "shared",
				"my_pool": {
					"class": "Pool",
					"members": [
						{
							"servicePort": 80,
							"serverAddresses": [
								"10.10.10.10"
							]
						}
					]
				}
			}
		}
}
  1. Check the presence of the /Common/Shared application and the pool
GET /mgmt/shared/appsvcs/declare
  1. Declare application using pool in /Common/Shared
{
	"class": "ADC",
	"schemaVersion": "3.24.0",
	"updateMode": "selective",
	"my_tenant": {
		"class": "Tenant",
		"my_app": {
			"class": "Application",
			"template": "generic",
			"my_vs": {
				"virtualAddresses": [
					"2.2.2.2"
				],
				"virtualPort": 80,
				"class": "Service_HTTP",
				"pool": {
					"use": "/Common/Shared/my_pool"
				}
			}
		}
	}
}
  1. Check that the /Common/Shared is now absent
GET /mgmt/shared/appsvcs/declare
  1. Check the F5 GUI, the pool is still available ( but not in the AS3 declaration)

  2. Retry to declare application using pool in /Common/Shared

{
	"class": "ADC",
	"schemaVersion": "3.24.0",
	"updateMode": "selective",
	"my_tenant": {
		"class": "Tenant",
		"my_app": {
			"class": "Application",
			"template": "generic",
			"my_vs": {
				"virtualAddresses": [
					"2.2.2.2"
				],
				"virtualPort": 80,
				"class": "Service_HTTP",
				"pool": {
					"use": "/Common/Shared/my_pool"
				}
			}
		}
	}
}
  1. Observe the error
{
  "code": 422,
  "errors": [
    "/my_tenant/my_app/my_vs/pool/use: contains path to non-existent object Common"
  ],
  "declarationFullId": "",
  "message": "declaration is invalid"
}

Expected Behavior

When declaring Tenant, /Common/Shared shouldn't be deleted nor modifier

@BenEkpy BenEkpy added bug Something isn't working untriaged Issue needs to be reviewed for validity labels Apr 7, 2021
@dstokesf5
Copy link
Contributor

Confirmed, something is wrong here. I have added AUTOTOOL-2420 to our internal product backlog to resolve this.

Are you seeing an error on step 3? I am seeing an error message with configuring /Common on step 3 that could explain why /Common disappeared.

@dstokesf5 dstokesf5 removed the untriaged Issue needs to be reviewed for validity label Apr 14, 2021
@BenEkpy
Copy link
Author

BenEkpy commented Apr 15, 2021

I don't see error message on step 3.

Here is the output after executing AS3 request :

{
  "results": [
    {
      "code": 200,
      "message": "no change",
      "host": "localhost",
      "tenant": "Common",
      "runTime": 1099
    },
    {
      "code": 200,
      "message": "success",
      "lineCount": 22,
      "host": "localhost",
      "tenant": "my_tenant",
      "runTime": 1138
    },
    {
      "code": 200,
      "message": "no change",
      "host": "localhost",
      "tenant": "Common",
      "runTime": 1066
    }
  ],
  "declaration": {
    "class": "ADC",
    "schemaVersion": "3.24.0",
    "updateMode": "selective",
    "my_tenant": {
      "class": "Tenant",
      "my_app": {
        "class": "Application",
        "template": "generic",
        "my_vs": {
          "virtualAddresses": [
            "2.2.2.2"
          ],
          "virtualPort": 80,
          "class": "Service_HTTP",
          "pool": {
            "use": "/Common/Shared/my_pool"
          }
        }
      }
    },
    "id": "autogen_b3d19fd0-0b9c-4958-84f3-a54724f1469e",
    "controls": {
      "archiveTimestamp": "2021-04-15T11:22:38.029Z"
    }
  }
}

@dstokesf5
Copy link
Contributor

Thank you for the update. I am going to try this with version 3.24.0 to see if I get the same results.

@dstokesf5
Copy link
Contributor

Confirmed that the behavior is exactly as you described on 3.24.0. It seems like this use case actually got worse in recent versions. We will make sure to add some additional test cases to cover this better as we work on AUTOTOOL-2420.

@walterk82
Copy link

I'm looking to have this issue addressed as well. Thank-You.

@dstokesf5
Copy link
Contributor

A developer is currently looking into this. We hope to have it resolved in the 3.29.0 release.

@DumpySquare
Copy link

I'm running into this now. subscribing for updates.

@jfreeland
Copy link

Also having this problem. Please fix.

@dstokesf5 dstokesf5 added this to the v3.29.0 milestone Jun 30, 2021
@dstokesf5
Copy link
Contributor

This issue has been resolved by the 3.29.0 release.

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

No branches or pull requests

5 participants