Skip navigation
All People > Timothy Dallmann > Timothy Dallmann's Blog

When we moved from a single-server CARA master to an HA setup, we started using a retrieval agent group instead of  a specific retrieval agent.  This was all fine, except that the original agent, which no longer existed, could not be removed from the system, as many artifacts were still associated with it as their retrieval agent.  This meant that I always saw a missing agent, even though technically all "real" agents were fine.


It's been nearly a year since doing this, so I determined that we could simply delete any older artifacts that were still associated with the old retrieval agent.  But how to do this?  When trying to delete the old agent, CARA responded with a list of over 1600 artifacts that prevented the agent removal.  I certainly was NOT going to manually adjust or remove 1600+ artifacts!


Enter Postman - a REST client from Google that allows me to run REST requests in a very flexible and powerful way: by driving the calls with a csv file.  Here's what I did:


  1. Attempt to delete the old agent - it responds with a large text field listing all the artifacts that are associated with it.
  2. Since the list of artifacts was not formatted for data processing, I needed to massage it.  Using Notepad++ I was able to do some simple manipulation to quickly get an artifact list with comma-separation:
  3. I opened this up in Excel just to ensure that I everything lined up correctly.
  4. Now I opened Postman.  I'm gong to use a feature called the "Collection Runner" to drive the calls with the csv file, so I first created a new collection, then added an API call to the delete-artifact-version method:
  5. I edited the collection to specify the authentication along with the Base URL of my CARA server.  (I did not need to do this, but I find it good practice to specify anything used across multiple calls in the collection itself).

  6. Next I set up the delete-artifact-version call.  The key here being the setup of the message body.  I used the names of the csv file headers as placeholders for real data at run time:
  7. At this point the request is basically ready - now we need to automate calling it for each row in the csv file I created earlier.  This is what the Postman Collection Runner is for.
  8. After starting the Collection runner from postman, I selected the new collection I created for this:
  9. Now I can select the csv file, and even preview the data to ensure it looks like what I want:
  10. Then I run it, go grab some coffee, and wait for all 1600+ artifact versions to be deleted.


Once all this was completed, I was able to remove the old agent, and it no longer showed up as a missing agent.  

Our infrastructure team has created a lab environment that is physically segregated from our production network.  This has some advantages I'd like to share:

  • Installation of the product can be done, and redone, as needed to ensure the process is understood and the requirements are fleshed out.  While CA may provide physical requirements for the product, there are many options around how to set up authentication and authorization, among other options, that can be tried without risk.
  • The lab provides an opportunity to learn about how the management server works with the execution servers and agents.  This allows us to experiment with various high availability configurations without continually modifying our production environment.
  • Working within Release Automation in the lab allows us to experiment with new process ideas, usage of new actions, creation of custom actions, and anything else we can think of while keeping production clean.
  • Integrations can be thoroughly vetted before attempting them in production.
  • As we eventually realize the need for product upgrades, the lab will provide a place to run through the upgrade process and verify it's success before applying the upgrade to production.


Once we are comfortable with our understanding of Release Automation, we will be installing it into our production environment in preparation for CA's arrival for implementation services.


Do any of you also use a lab environment?  Have you discovered other benefits of this approach?

Selection process complete...


Contracts signed...


We are now proud owners of CA Release Automation.  I'm very excited to see where this takes us over both the short term and long term as we move ever closer to that perfect world we all dream about, where business requests become production changes in the span of hours rather than months.  We've made a lot of headway over the past few months, and finally have an executive team with the vision that allows us to move forward into a modern, IT-focused, rapid-change, fail-fast (and therefore succeed fast) business environment. 


I plan to use this blog as a way to share with the community how things are going.  Stay tuned...