5 Replies Latest reply on Aug 19, 2013 9:47 AM by Dudley Credeur

    Custom Action Capture Buffer in Loops

    Dudley Credeur

      I have a custom action intended to dynamically loop thru the directory systems of a device and delete unused IOS bin files.  The steps of the action are:


      1. Check config for image name in 'boot system' statement and save to a variable

      1. Run 'show file systems' and capture directories using capture buffer. 

      2. The first loop then steps thru the directories executing 'show loopvar*bin', capturing the bin filenames with a capture buffer

      3. The second loop steps thru the image files found in the directory, checks if the file name found matches the current boot image.  If not, delete the image.


      The custom action works for the most part.  The only issue is that the capture buffer of the second loop doesn't get cleared between interations.  So it may delete 4 files from the first directory.  If the second directory in the loop has no files, it will try to delete the 4 files from the first interation.  Or if the second directory has 2 files to be deleted, it will delete those two new files then attempt to delete the last two files of the first interation.  Here's an example:


      SWITCH#dir bootflash:*bin
      Directory of bootflash:/*bin


          2  -rwx    17500968  Dec 22 2010 08:40:53 -06:00  cat4500-entservicesk9-mz.122-50.SG8.bin
         52  -rw-       28296  Jun 15 2012 09:59:19 -05:00  img1.bin
         53  -rw-       28296  Jun 15 2012 09:59:26 -05:00  img2.bin
         54  -rw-       28296  Jun 15 2012 09:59:33 -05:00  img3.bin

      61341696 bytes total (42495612 bytes free)
      SWITCH#delete bootflash:img1.bin
      Delete filename [img1.bin]?
      Delete bootflash:img1.bin? [confirm]


      SWITCH#delete bootflash:img2.bin
      Delete filename [img2.bin]?
      Delete bootflash:img2.bin? [confirm]


      SWITCH#delete bootflash:img3.bin
      Delete filename [img3.bin]?
      Delete bootflash:img3.bin? [confirm]


      SWITCH#dir slot0:*bin
      Directory of slot0:/*bin


          9  -rw-       28296  Jun 13 2012 16:54:30 -05:00  djc.bin
         10  -rw-       28296  Jun 15 2012 10:00:18 -05:00  img4.bin

      128057344 bytes total (68133840 bytes free)
      SWITCH#delete slot0:djc.bin
      Delete filename [djc.bin]?
      Delete slot0:djc.bin? [confirm]


      SWITCH#delete slot0:img4.bin
      Delete filename [img4.bin]?
      Delete slot0:img4.bin? [confirm]


      SWITCH#delete slot0:img2.bin
      Delete filename [img2.bin]?
      Delete slot0:img2.bin? [confirm]


      %Error deleting slot0:img2.bin (File not found)
      SWITCH#delete slot0:img3.bin
      Delete filename [img3.bin]?
      Delete slot0:img3.bin? [confirm]


      %Error deleting slot0:img3.bin (File not found)
      SWITCH#dir system:*bin
      Directory of system:/*bin


      No such file


      How can I ensure the capture buffer is cleared between each loop?