| :orphan: |
| |
| Pricing |
| ======= |
| |
| For majority of the compute providers Libcloud provides estimated pricing |
| information. Pricing information is available via the :attr:`price` attribute |
| on the :class:`NodeSize` object. :attr:`price` attribute is a :func:`float` |
| type and tells user how much it costs (in US dollars) to run a ``Node`` with a |
| specified :class:`NodeSize` for an hour. |
| |
| Example below shows how to retrieve pricing for ``NodeSize`` objects using |
| :func:`list_sizes` method. |
| |
| .. literalinclude:: /examples/compute/pricing.py |
| :language: python |
| :emphasize-lines: 11-18 |
| |
| As noted above this pricing information is an estimate and should only |
| be used as such. You should always check your provider website / control panel |
| for accurate pricing information and never rely solely on Libcloud pricing data. |
| |
| Besides that, many cloud providers also offer different pricing scheme based |
| on the volume, term commitment and discounts for reserved instances. All of |
| this information is not taken into account in the simplistic "price per hour" |
| pricing scheme available in Libcloud. |
| |
| Where does the Libcloud pricing data come from? |
| ----------------------------------------------- |
| |
| Most of the providers don't provide pricing information via the API which means |
| most of the pricing information is scraped directly from the provider |
| websites. |
| |
| Pricing data which is scraped from the provider websites is located in a |
| JSON file (``data/pricing.json``) which is bundled with each release. This |
| pricing data is only updated once you install a new release which means it |
| could be out of date. |
| |
| .. _using-custom-pricing-file: |
| |
| Using a custom pricing file |
| --------------------------- |
| |
| .. note:: |
| |
| This functionality is only available in Libcloud 0.14.0 and above. |
| |
| By default Libcloud reads pricing data from ``data/pricing.json`` file which |
| is included in the release package. If you want to use a custom pricing file, |
| simply move your custom pricing file to ``~/.libcloud.pricing.json``. |
| |
| If ``~/.libcloud.pricing.json`` file is available, Libcloud will use it instead |
| of the default pricing file which comes bundled with the release. |
| |
| Updating pricing |
| ---------------- |
| |
| .. note:: |
| |
| This functionality is only available in Libcloud 0.14.0 and above. |
| |
| Currently only way to update pricing is programmatically using |
| :func:`libcloud.pricing.download_pricing_file` function. By default this |
| function retrieves the latest pricing file from our git repository and saves it |
| to ``~/.libcloud.pricing.json``. |
| |
| .. autofunction:: libcloud.pricing.download_pricing_file |