Writing a generic cloud module
We're going to set up a very generic module that uses a direct REST API to communicate with a cloud provider. If you spend a lot of time with different APIs, you'll find the style used here to be very common.
Checking for required configuration
In order to use a cloud provider, you will need a __virtual__()
function to check for required configuration, and if necessary, any dependencies. You will also need a function called get_configured_provider()
, which checks to make sure that the configuration that is required to connect to your cloud provider (usually authentication at the very least, and sometimes other connection parameters) have been specified. We will also need to define __virtualname__
, which contains the name of the driver as Salt Cloud will know it. Let's go ahead and start our cloud module with these:
''' Generic Salt Cloud module This module is not designed for any specific cloud provider, but is generic enough that only minimal changes may be...