13 years ago today, the first version of what became PHP Network Weathermap was released… it was a series of versions in Perl, adding functionality to the GRNET Weathermap. After a few of those, and getting tired of explaining how to build CPAN modules, I started re-writing the whole thing in PHP, initially before the Cacti Plugin Architecture existed, as a standalone script sometime in April 2005. Sadly, it looks like the Cacti Forums have had some database corruption over the years, so posts that old seem to be missing.
I know this is taking a long time, but here’s what I’m up to with Weathermap now:
- Cacti 1.0 uses a sort-of old-fashioned “download chunks of HTML” approach to its new UI. That meant rewriting the Weathermap Cacti plugin to work in this (undocumented) style, too.
- I also have wanted to rewrite it anyway for some time into a more object-oriented format which separates the actual actions on the database from the display code. This makes it possible to write automated tests for the action code, and for someone to potentially reuse it a lot more easily in another NMS integration.
- I was halfway through doing all that, when I realised that if I was going to have to rewrite it anyway, I’d rather do it in a manner than benefits everyone, including non-Cacti users. Particularly as I am personally not really much of a Cacti user nowadays, but also I’ve wanted to make it easier for folks like the LibreNMS project to integrate weathermap for some time now.
- The ‘user’ plugin is about 70% done (map cycling remains). The ‘management’ plugin is started but early days. This work is also a lot more fun than trying to untangle someone else’s intent though, so it’s progressing well. The client side of things will be written with Inferno and Redux.
Once again, sorry for the long delay, but I wanted this to be right. I also wanted it to be fun to do – this is my hobby project, without much external contribution[*], so having it feel like a job I hate doing for the last year has been no fun at all. The end result should be worth it.
Also, this is the path the data-picker, and then editor will take in a future release, and quite possibly weathermap itself after that – I already did a little bit of experimentation with that.
* A huge thank you to those contributors though! It is still my goal to build a development group around the project if possible. For me personally, that still means simplifying, modernising, clarifying the internals, to make it easier for others to get started and contribute. I do still see this as the ‘dark ages’ before a brave new world of open source weathermap – it’s just taking longer than I hoped! 🙂
First of all, apologies for the slow progress, but the “obstacles”* in my life that have been slowing things down are clearing up. The website has a temporary new look, after the previous theme I’ve been using seems to have dramatically changed between updates. This one happens to also match better with the other new change: a forum!
It’s rather empty at the moment. This is supposed to be the worst way to launch a forum, but I can’t see a way around that. I really wanted to have somewhere for people to talk about their weathermap issues that wasn’t necessarily dependent on Cacti. I know lots of Weathermap users are not Cacti user. I also wanted somewhere better than Github Issues to discuss and dissect problems, before they become specific issues on Github. Also, somewhere to try and grow some development community. I’ve been having good discussions about this with some folks recently, and there some great early work by Martin over there about getting going with development stuff.
So progress should speed up a bit for what I’ve decided to call Weathermap 1.0.0 which will have Cacti 1.x (and Cacti 0.8.8) compatibility. Thanks to those who are hitting me with bug reports and even the odd pull request!
And I’m looking forward to the next release after that being hopefully from a group…
* Please don’t tell my new wife I said that!
Cacti 1.0 was released a few days ago, and with it, a new plugin API. Weathermap (even from github) doesn’t currently work with Cacti 1.0. Unfortunately, at least from a first look, it also seems that it’s not possible to easily have a plugin that supports both Cacti 0.8.x and Cacti 1.x. The Cacti Group’s own plugins have made a clean break, with new versions only supporting 1.0. I think it will be a while before everyone moves to 1.0 (personally I avoid version x.0 of anything, especially with such big internal changes), and that it’s unfair that to get new Weathermap features (or fixes!), you’d need to upgrade Cacti too. So I want to continue supporting 0.8.x with new versions also, at least until Weathermap is also settled down again. With PDO, and PHP 7 support, and the changes related to code improvement, I’d hope that even if I decide to stop supporting Cacti 0.8.x, someone else could continue, after that point.
After a very busy new year, I’m back to thinking about Weathermap again, and will be finishing off the changes for PDO and PHP 7.0 soon. Once that version is released, then I’ll look at Cacti 1.0. It’s likely that Weathermap will be broken into multiple downloads: a ‘core’ with the actual map functionality and probably the CLI, and then a series of extra downloads to provide the editor, Cacti 0.8.x plugin, Cacti 1.x plugin, standalone web app, and LibreNMS plugin. You would download the core plus whichever of the other features you actually need. To get both Cacti versions working, something like this is necessary, and users of other systems don’t need any of that code cluttering up their installation.
There is (as far as I know) one remaining set of failing tests before the next release – all related to colourising icons, and transparency.