Agent requirement, unable to compare agent property provided by Path Exists property collector with project variable? 1.9.2.464

I’m using a PathExists properly collector to track agents that have a particular path present. The agents properties seem to work, the value is True when I view the agent.

As there is no boolean project variable data type, I tried Text and Numeric and in both cases when I have an Agent Requirement for a stage based on comparing a project variable with the property provided by 'Path Exists Plugin" the build pauses waiting for agent and shows that the requirement

“could not be evaluated as [project var] and [agent property] are different types.”

Any fix/workaround? I checked .484 notes and didn’t see anything relevant.

I just tried $Utils.GetBoolean([my project variable])$ compared to the agent property, and that errors in the same way. So it’s acting like the agent property isn’t a boolean, string or number…

Also tried .ToString().ToUpper() on the agent property, that doesn’t work either.

I’m starting to think this might be a bug?

FYI: I worked about this by adding a registry value and corresponding property collector. Had to set this on each agent so I can tell whether the software in question is installed or not. It works, but seems like much more hassle.

Hi Brenden,

What is the agent requirement expression that you used? I just did a test with the following property collector.

image

I created the following project-level variable:

image

Then I added this agent requirement to my configuration stage:

When I created the path I:\temp\pathtest on the agent and started a build, it ran successfully.

I just re-tested with a fresh project, same result. I also upgraded to 1.9.2.484 prior to this test.

Here’s my property collector:
Untitled

And project variable:
Untitled2

Agent Requirement in stage options. NOTE: I tried reversing the test variables, with agent property on left… same result:

I verified that I have 2 agents with Vendor.RemObjects.PathExists as True and one agent with False. Build ends up stuck with this message in the details:

Change $Agent.Vendor.RemObjects.PathExists$ to $Agent.Vendor.RemObjects.PathExists.Exists$.

$Agent.Vendor.RemObjects.PathExists$ is an object and does not have a value on its own. You need to specify the .Exists property.

We can see that this is easy to miss and, as this object only has one property, we will make the Exists property the default if no property is provided. We’ll do this for the next version.

I thought I tried that once before, but must have been in the wrong context or one of the other things I tried.

Thanks! I’ll give that a shot tomorrow.

confirmed, that’s the ticket. Didn’t expect the result of Path Exists plugin to be anything other than a boolean.