Cisco Blogs


Cisco Blog > Data Center and Cloud

Free Free Free Cisco UCS Development Free Free Free

January 26, 2012
at 8:09 pm PST

The other day I was “making” breakfast for my daughter, as I poured the cereal from the box I noticed that the “toy” was the box. The box had a game board printed on it and you had to cut it out along with the game pieces and the die. The game instructions were printed inside the box, so I ended up with a whole bunch of cardboard snippets and the game.  She was so excited to play the game, so we played the game, it was an arduous journey but I stuck it out because that’s the kind of dad I am. When we finished playing, my daughter with her eight years of life experience remarked, “You just don’t get anything good for free anymore!”

Anymore?!! How many reference points could she have in her eight years?  Myself, being a little older, I have some more experience with “free”, and sadly I have to agree with her that the free you get today is not as good as the free you used to get, to the point where seeing the word free no longer excites me.

Well I have found some exceptions to that rule. As a developer for a couple decades now I have used many development tools and environments. Along the way either I or my employer had to pay for those tools, but now almost every development product I use is free and not cheesy cereal box game free but full featured with community support and add-ons to extend the capabilities of the product.  That’s the kind of free to get excited about.

Why get excited?  Well take for instance the Cisco UCS Manager; it has an XML API that is communicated with via XML documents in an HTTP post. Every tool I use to write applications that interface with the UCS Manager is free. That’s great you say, but you still need a UCS Manager and to get that you need a UCS Fabric Interconnect and you need chassis, blades, adaptors, memory, disks, etc. and you start to think things like “the UCS we just ordered isn’t here yet” or “the UCS systems we have are all production and we can’t test our scripts against them.”

Don’t despair because Cisco has released a UCS Emulator for the 1.4 and 2.0 versions of the UCS Manager firmware.  The UCS Platform Emulator (UCSPE) has significant capabilities to enable UCS Manager development, things like hardware configuration importing from a live system, exporting of a configuration and the ability to build an emulated UCS system like the one you just ordered. In addition to the emulation capabilities the UCSPE also includes the UCS Object Model documentation, example scripts, Visore (the object browser) and more. Don’t know what the Object Model is or concerned you need more information on the XML API, check out these docs.

What else do I use? Glad you asked, here’s a list of tools I use with links to them, the thing that they all have in common is that they are 100% free.  If you or your company wants to develop applications for UCS management/automation/monitoring or anything else you can think of, the cost of outfitting yourself or your developers is $0.00  and I believe if I do the calculation correctly the ROI is really good!

That’s a lot of free, a lot of good free, some even better than good. Plus most of these products have community support or just Google if you get stuck in your development process. One time I wanted to do hexadecimal math so I could do some MAC address calculations in Perl.  Given a starting textual representation of a MAC address and a number of needed MAC address I wanted to find the end address and print it in MAC address form. I wasn’t sure how to proceed but I Google’d a bit and came up with this…

  use Math::BigInt;

  my $toAddr = "";
  my $tmpAddr = $from;

  $tmpAddr =~ s/://g;
  my $dec = Math::BigInt->new("0x" . $tmpAddr);
  print "from mac address $from \n";

  $toMAC = dec2hex($dec + $size);
  while (length($toAddr) < 12) {
    $toMAC = "0" . $toAddr;
  }

  my $to = sprintf("%s:%s:%s:%s:%s:%s",unpack("A2A2A2A2A2A2",$toAddr));
  print "to mac address $to \n";

  sub dec2hex {
    #
    # dec2hex - convert a decimal to hex
    # Parameters:
    #
    # aInDecimal - Decimal to convert to Hex
    #
    # Return Value
    # hex representation of the decimal
    #
    my $decnum = $_[0];
    my $hexnum = "";
    my $tempval = "";

    while ($decnum != 0) {
      $tempval = $decnum % 16;
      if ($tempval > 9) {
        $tempval = chr($tempval + 55);
      }
      $hexnum = $tempval . $hexnum ;
      $decnum = int($decnum / 16);
      if ($decnum < 16) {
        if ($decnum > 9) {
          $decnum = chr($decnum + 55);
        }
        $hexnum = $decnum . $hexnum;
        $decnum = 0
      }
    }
    return $hexnum;
  }

Hopefully that all makes sense, now back to what I was talking about.

In my last post I had links for XML and XSLT and XPATH and xmlstarlet an XML parsing tool. I haven’t even touched upon all the Java jars and Perl modules I use, again if you have not already guessed it, they’re free as well!

Finally, I was lucky enough to be featured in a segment of TechWiseTV Episode 100: Cisco Unified Computing Celebration taped last summer at Cisco Live 2011 in Las Vegas. In my segment (34:45 minutes in) I discuss the UCS emulator and its capabilities.

Tags: ,

In an effort to keep conversations fresh, Cisco Blogs closes comments after 60 days. Please visit the Cisco Blogs hub page for the latest content.

2 Comments.


  1. Wow. I’ll pass this post along to my networking techs. I didn’t realize you had all those free tools. I really should read these Cisco blogs more often. Thank you. I especially like the one for Mac addresses. It has often stumped us.

       0 likes