Safe HaskellSafe-Infered




mergeConfig :: InstanceParams -> InstanceParams -> InstanceParamsSource

Merges two instance configurations into one.

In the case where instance IPs (i.e., map keys) are repeated, the old instance configuration is thrown away by union and replaced by the new configuration. As a result, the old private and secret OS parameters are completely lost.

getOsParams :: String -> String -> JSObject JSValue -> Result (JSObject JSValue)Source

Extracts the OS parameters (public, private, secret) from a JSON object.

This function checks whether the OS parameters are in fact a JSON object.

getPublicOsParams :: JSObject JSValue -> Result (JSObject JSValue)Source

getPrivateOsParams :: JSObject JSValue -> Result (JSObject JSValue)Source

getSecretOsParams :: JSObject JSValue -> Result (JSObject JSValue)Source

makeInstanceParams :: JSObject JSValue -> JSObject JSValue -> JSObject JSValue -> JSObject JSValueSource

Merges the OS parameters (public, private, secret) in a single data structure containing all parameters and their visibility.


 { "os-image": ["", "public"],
   "os-password": ["mypassword", "secret"] }

getOsParamsWithVisibility :: JSValue -> Result (JSObject JSValue)Source

getInstanceCommunicationIp :: JSObject JSValue -> Result (Maybe String)Source

Finds the IP address of the instance communication NIC in the instance's NICs. If the corresponding NIC isn't found, Nothing is returned.

getInstanceParams :: JSValue -> Result (String, Maybe InstanceParams)Source

Extracts the OS parameters from the instance's parameters and returns a data structure containing all the OS parameters and their visibility indexed by the instance's IP address which is used in the instance communication NIC.