Sahara/PluggableProvisioning/ObjectsModel

This page describes Object’s Model for Savanna Pluggable Mechanism. Here is the Cluster object schema:



Here is a description of all the objects mentioned above. Notes:
 * all fields are strings unless specified otherwise.
 * cluster and node_group have ‘extra’ field allowing plugin to persist any complementary info about the cluster.
 * node_process is just a process that runs at some node in cluster.
 * Here is an example list of node processes:


 * 1) jobtracker
 * 2) namenode
 * 3) tasktracker
 * 4) datanode
 * Each plugin may has different names for the same processes.

cluster_confs

 * Describes a single config parameter.
 * name
 * description
 * type
 * Type could be string, integer, enum, array of [int, string]
 * default_value
 * is_optional
 * applicable_targets: list of strings
 * The target could be either a node_process, ‘node’ or ‘cluster’

user_input

 * Value provided by user for a specific config.
 * config
 * a config object for which this user_input is provided
 * value
 * a value provided by the user for the config

instance

 * An instance created for the cluster


 * id
 * ip
 * credentials
 * extra

node_group

 * Specifies group of nodes within a cluster.


 * name
 * Helps uniquely identify the node_group
 * image
 * Image’s id from Glance. All instances from this node_group are launched from this image.
 * flavor
 * OpenStack’s flavor which is applied to all instances from this node_group.
 * node_processes: list of strings
 * List of Hadoop processes which run on all nodes from this node_group
 * node_configs: list of user_inputs
 * List of configs provided by user. The configs either are for Hadoop processes running on this group, or they relate to the plugin-specific node configuration.
 * anti_affinity_group
 * That parameter will be used to control node placement for DN nodes. TBD
 * count: int
 * Number of instances in that group.
 * instances: list of instances
 * List of instances to be created for that group.
 * vm_requirements : dictionary
 * Examples:
 * memory: required memory
 * disk: required disk
 * extra

cluster

 * Contains all relevant info about cluster. This object is is provided to the plugin for both cluster creation and scaling. The “Cluster Lifecycle” section below further specifies which fields are filled at which moment


 * name
 * plugin_name
 * default_image
 * Image specified by user. Plugin could use it as a base image for cluster nodes
 * cluster_configs: list of user_inputs
 * List of cluster-wide configs
 * node_groups: list of node_groups
 * extra

validation_error

 * Describes what is wrong with one of the values provided by user.
 * config_name
 * error_message