Rails-CMDB release 0.4

It’s taken a long time to get this release of Rails-CMDB ready for release, as I’ve done some tidying of the code base, plus adding lots of unit and functional tests. I’ve also improved the the views into the database and added the notation of Environments within Locations.

The source code can be found here. Not sure what is going to be in the next version, however I would like to get a public Subversion repository set up when I feel the testing good enough to catch any issues.

See below the cut for the (incomplete) change logs for version 0.4 (and the unreleased 0.3).

Continue reading


Testing Love and Ruby on Rails

For the last couple of weeks in some of my spare time I’ve being writing unit and functional tests for Rails-CMDB. So far it’s helped me spot a more than a few issues, the most surprising to me was the naming of my os controller, which the functional test tried to test as O. So currently I’m in the process of refactoring things to mesh better with the Rails idiom.

The main upshot of all of this; it’s likely to be early October before the next release of Rails-CMDB, and the version number is very likely to jump a few points due to unreleased versions.

I’m also contemplating what new features the next released version will have and so far I’m thinking of the following:

  • Environments: Separating out different types of devices within the same location (e.g. test, stage and production).
  • Virtual Machines: Modeling devices that are virtual and running as a guest on physical device.

The Ruby on Rails way for Model naming

Following the comment from Graeme Mathieson on my last post on Rails-CMDB about the the Rails way for naming of columns within Models. I’m planning on doing the following column rename for the next release of Rails-CMDB:

rename_column :assets, :delivery_date, :delivered_on
rename_column :assets, :removal_date, :removed_on

rename_column :locations, :start_date, :started_on
rename_column :locations, :end_date, :ended_on

rename_column :purchase_orders, :order_date, :ordered_on

rename_column :vendors, :last_order_date, :stopped_ordering_on

So the question for the Rails coders out there – does this seem correct ? There’s also a single table who’s primary field is not called name, so I guess to do it in the Rails way it should be changed as well.

I’ve also created about 90 unit test stubs and now just comes the hard part of coding the tests 😉

Rails-CMDB release 0.2

Well it’s been a month since the first release of Rails-CMDB and it’s now time for another release. This is the rather large list of changes:

  • Added some unit tests for PurchaseOrder.
  • Added Export to CSV.
  • Added Import from CSV.
  • An asset can have many hardware items.
  • The Asset name does not need to be a number.
  • Catch trying to show a device that does not exist.
  • Add order_date column to PurchaseOrder Model.
  • Rename order_date column in Asset to delivery_date.
  • Correct typo’s in CreateNetworks which prevented loading of the schema.
  • Rename the database’s used to match the application name.
  • Added some simple doc’s on getting the system up and running.
  • Change to using host: in database.yml instead of sockets.

The source code can be found here. Not sure what is going to be in the next version, however I expect it’ll not be ready for release until mid to late September.

First release of Rails-CMDB (v0.1)

This is the first ever release (0.1) of Rails-CMDB, the Ruby on Rails project I’ve been working on since the end of last month. It’s best described as little rough round the edges and the under laying DB schema may change with no upgrade path. However it’s possible to enter (and change) all of information via the interface and also view all details for a device on a single page.

The source code can be found here on my main web site, I’ll try to do a second release within the next few weeks when I get an idea of what’s needed next (I’m currently thinking it’ll need to be import or export via an Excel speed sheet or a CSV file).

Update: It’s been pointed out the me that I did not say what this software is, you can find a lot more details ITIL defines as a configuration management database (cmdb) in this post from last month.

The on going experance with Ruby on Rails

The experimental Ruby on Rails application is plodding along nicely, so far I have about six database tables with relationships between a number of them, and I’m getting it to display meaningful data from them.

I’m slowly starting to get my head round how to set up table relationships. Over the weekend I expect to have the first pass at a workable data model that records most of the required database. This is going slowly as I’m only getting to spend about an hour a day on this project.

It’s likely that I may be in a position to publish some working code late in July (or early August).

Ruby on Rails (take 2)

Since Saturday I’ve carried on looking at Ruby on Rails and so far I’m very impressed. While reading though the first part about of Agile Web Development with Rails, I wrote a simple web application which displays some data from a single database table, requires a logged in session to change data and always has user management via the admin interface. I don’t think I could have gotten this much done in so little time (and code) in any other language.My next target to get a better understanding of the data model system and set up some inter-table relationship. In about a month or so the application may very well worth publishing.