OctopusDeploy / Issues

| Public | Bug reports and known issues for Octopus Deploy and all related tools
https://octopus.com
162 stars 20 forks source link

Filtering on the machines endpoint incorrectly filters on `IsDisabled` #8916

Closed benPearce1 closed 3 weeks ago

benPearce1 commented 3 months ago

Severity

Blocking some customers, no workaround available

Version

Didn't check earlier versions

Latest Version

I could reproduce the problem in the latest build

What happened?

When calling the Machines List endpoint and filtering by IsDisabled the results are incorrect when setting IsDisabled=false.

Reproduction

For my current test setup: image

http://localhost:8066/api/Spaces-1/machines?skip=0&take=2147483647&isDisabled=false returns all six targets

{
  ItemType: "Machine",
  TotalResults: 6,
  ItemsPerPage: 2147483647,
  NumberOfPages: 1,
  LastPageNumber: 0,
  Items: [ ... ]
}

http://localhost:8066/api/Spaces-1/machines?skip=0&take=2147483647&isDisabled=true returns just the two disabled ones:

{
  ItemType: "Machine",
  TotalResults: 2,
  ItemsPerPage: 2147483647,
  NumberOfPages: 1,
  LastPageNumber: 0,
  Items: [ ... ]

Error and Stacktrace

None errors produced

More Information

This is affecting the use of the Target Datasources in Terraform https://github.com/OctopusDeployLabs/terraform-provider-octopusdeploy/issues/624

Workaround

Filter on the client side, if possible.

mjhilton commented 2 months ago

This seems to be a result of the way the Deployment Targets page was designed, which has the following behaviour:

The API handler was written - probably many years ago - to mirror this behaviour, even though we have the isDisabled property as nullable, we always treat a false value the same way as null.

Fix would be to update the frontend to provide no querystring value when the filter is unticked, and to update the backend to respect the nullability of the property.

octoreleasebot commented 3 weeks ago

Release Note: Infrastructure APIs which use isDisabled parameter will now return all enabled items when isDisabled=false

Octobob commented 1 day ago

:tada: The fix for this issue has been released in:

Release stream Release
2024.4 2024.4.4330
2025.1+ all releases