Hi all, Now that all the compute pricing data is contained in a single JSON file (data/pricing.json), updating it will in 95% cases only mean updating this file. This makes it a lot easier and more simple compared to the old way (updating variables in each driver file separately).
We should figure out the best way to distribute this JSON file and implement some kind of auto-update functionality in the library. There are some problems / things which we need to think about: - where to host this file? It should probably be hosted on a SSL enabled apache.org server - how should this file be updated? Probably manually at first, but later one we can build some really simple scrapers (ideally, all the providers would expose a special API endpoint for retrieving the pricing data and then we wouldn't need to deal with this at all). - where should the file be saved locally? We should probably default to some temporary folder, but user should be able to specify a custom one - how often to check for updates? We should default to some sane period, like every 12-86 hours, but user should be able to override this setting - should "auto-update" functionality be enabled by default? The whole API for this functionality could look something like this: import libcloud.pricing libcloud.pricing.AUTO_UPDATE = True libcloud.pricing.DATA_PATH = "/home/my/some/path/" libcloud.pricing.UPDATE_INTERVAL = 86 * 60 * 60 bool pricing.check_for_updates(); // returns true if new pricing data is available, false otherwise bool pricing.force_updates(); // if a new pricing data is available, download it We should also use some sane default values which would mean the user only needs to enable it if we decide to disable it by default. Feedback is welcome. Thanks, Tomaz
