Help with agent communication to server

Hello - I have written a plugin for Teamcity that allows the server to search for user defined tools and make agent parameters for them for different build agents. You can view the plugin and find out more information about what it does here: https://github.com/AccusoftCorporation/Teamcity-Parameter-Plugin

Currently, the parameters that the build agents search for are defined in a file: parameterFinder.xml in the jar file found in the server plugin folder. Currently, to change what the agents search for, you can edit the parameters.xml file in the location:

TEAMCITY_DATA_DIRECTORY\plugins\parameterFinder.zip\server\parameterFinder-server-1.0-SNAPSHOT.jar\buildServerResources\parameters.xml

 
You will then need to save the file and update the JAR file (this is done automatically with a tool like 7ZIP).

After this file has been modified, you need to restart the build agents that you want to pick up the edited parameters and they will create the new parameters automatically.

This needs to be updated to be able to be changed from some UI on the parameterFinder tab in Teamcity. Also, currently, if you want to change what the build agents search for, it requires an agent upgrade to be triggered to pull down the updated jar file from the server. I do not want to have to do this every time a parameter changes. I would like for this to be something that each agent can query for on agent start.

I did read that you can save settings in the main-config.xml file but I am not sure if that is the best method to do in this case. I also thought about creating a server endpoint that the agent would be able to communicate through to query the server for the parameters but I figured there has to be a better way.

If anyone has any ideas here, or needs more clarification please let me know.

Thank you-

Please sign in to leave a comment.