f5-appsvcs-extension
f5-appsvcs-extension copied to clipboard
Changes in iFiles not detected, cannot alter once created
Environment
- Application Services Version: 3.49.0
- BIG-IP Version: 17.1.1.1
Summary
If a declaration includes a base64 encoded iFile, any changes to that iFile are not detected, meaning AS3 cannot manage further updates to the content.
Steps To Reproduce
Steps to reproduce the behavior:
- Submit the following declaration:
{
"class": "AS3",
"action": "deploy",
"persist": false,
"updateMode": "selective",
"historyLimit": 2,
"declaration": {
"id": "iFileIssue_demo",
"class": "ADC",
"schemaVersion": "3.49.0",
"iFileIssue_demo": {
"class": "Tenant",
"app": {
"class": "Application",
"template": "generic",
"http_vs": {
"class": "Service_HTTP",
"virtualAddresses": ["10.7.25.15"],
"iRules": [
{
"use": "content_rule"
}
]
},
"content_rule": {
"class": "iRule",
"iRule": {
"base64": "d2hlbiBIVFRQX1JFUVVFU1QgcHJpb3JpdHkgNTAgewogICAgaWYge1tIVFRQOjpoYXNfcmVzcG9uZGVkXX0ge3JldHVybn0KCiAgICBIVFRQOjpyZXNwb25kIDIwMCBjb250ZW50IFtpZmlsZSBnZXQgL2lGaWxlSXNzdWVfZGVtby9hcHAvY29udGVudF0gQ29udGVudC1UeXBlIHRleHQvaHRtbCBDb25uZWN0aW9uIGNsb3NlIFgtUmVhc29uLUNkIHBkIFgtRnJhbWUtT3B0aW9ucyBERU5ZIFgtQ29udGVudC1UeXBlLU9wdGlvbnMgbm9zbmlmZgp9"
}
},
"content": {
"class": "iFile",
"iFile": {
"base64": "PGh0bWw+CiAgICA8aGVhZD48L2hlYWQ+CiAgICA8Ym9keT4KICAgICAgICA8cD5NZXNzYWdlOiBTYW1wbGUgTWVzc2FnZSAxPC9wPgogICAgPC9ib2R5Pgo8L2h0bWw+"
}
}
}
}
}
}
The iRule is a simple rule to serve the iFile content:
when HTTP_REQUEST priority 50 {
if {[HTTP::has_responded]} {return}
HTTP::respond 200 content [ifile get /iFileIssue_demo/app/content] Content-Type text/html Connection close X-Reason-Cd pd X-Frame-Options DENY X-Content-Type-Options nosniff
}
and the content is simple HTML:
<html>
<head></head>
<body>
<p>Message: Sample Message 1</p>
</body>
</html>
Make a minor change to the HTML content, and post the update. In this example, I changed the message to "Sample Message changed"
- Observe the following error response:
{
"id": "ca26d38a-ae86-4f71-bed9-0b959bafc5ea",
"results": [
{
"code": 200,
"message": "no change",
"host": "localhost",
"tenant": "iFileIssue_demo",
"runTime": 1701,
"declarationId": "iFileIssue_demo"
}
],
"declaration": {
"iFileIssue_demo": {
"class": "Tenant",
"app": {
"class": "Application",
"template": "generic",
"http_vs": {
"class": "Service_HTTP",
"virtualAddresses": ["10.7.25.15"],
"iRules": [{ "use": "content_rule" }]
},
"content_rule": {
"class": "iRule",
"iRule": {
"base64": "d2hlbiBIVFRQX1JFUVVFU1QgcHJpb3JpdHkgNTAgewogICAgaWYge1tIVFRQOjpoYXNfcmVzcG9uZGVkXX0ge3JldHVybn0KCiAgICBIVFRQOjpyZXNwb25kIDIwMCBjb250ZW50IFtpZmlsZSBnZXQgL2lGaWxlSXNzdWVfZGVtby9hcHAvY29udGVudF0gQ29udGVudC1UeXBlIHRleHQvaHRtbCBDb25uZWN0aW9uIGNsb3NlIFgtUmVhc29uLUNkIHBkIFgtRnJhbWUtT3B0aW9ucyBERU5ZIFgtQ29udGVudC1UeXBlLU9wdGlvbnMgbm9zbmlmZgp9"
}
},
"content": {
"class": "iFile",
"iFile": {
"base64": "PGh0bWw+CiAgICA8aGVhZD48L2hlYWQ+CiAgICA8Ym9keT4KICAgICAgICA8cD5NZXNzYWdlOiBTYW1wbGUgTWVzc2FnZSBjaGFuZ2VkPC9wPgogICAgPC9ib2R5Pgo8L2h0bWw+"
}
}
}
},
"id": "iFileIssue_demo",
"class": "ADC",
"schemaVersion": "3.49.0",
"updateMode": "selective",
"controls": { "archiveTimestamp": "2024-03-21T13:47:18.516Z" }
}
}
Expected Behavior
AS3 should detect the change and save the updated content
I have also noticed that when there are other changes present, the declaration is accepted, but no changes are made to the iFile. They cannot be updated once deployed.
We appear to be encountering this as well.
This behaviour is also seen when using an URL reference:
"unavailablepage_tools_index.html": {
"class": "iFile",
"iFile": {
"url": {
"url": "https://<something>/unavailablepage_tools_index.html",
"ignoreChanges": false
}
}
},
We are also encountering this issue, in both AS3 versions 3.46 And 3.51, on BIG-IP versions v15.1.10.4 and on v17.1.1.3
Jira filed AUTOTOOL-4304 and added to queue. Prioritizing with PD
Customer noted that this issue is resolved in 17.1 and AS3-53
I can confirm that this bug is still present in 17.1.2.1 | 0.0.2 and AS3 3.53.0
Reopening issue as not resolved
This issue is resolved in AUTOTOOL-4734 AS3 3.55.0, which will be available shortly. Closing GitHub issue