class ActionCreateRequestBody(base.SenlinObject): fields = { 'name': fields.NameField(), 'cluster_id': fields.StringField(), 'action': fields.StringField(), 'inputs': fields.JsonField(nullable=True, default={}), }
class ClusterCreateRequestBody(base.SenlinObject): fields = { 'name': fields.NameField(), 'profile_id': fields.StringField(), 'min_size': fields.CapacityField(nullable=True, minimum=0, default=consts.CLUSTER_DEFAULT_MIN_SIZE), 'max_size': fields.CapacityField(nullable=True, minimum=-1, default=consts.CLUSTER_DEFAULT_MAX_SIZE), 'desired_capacity': fields.CapacityField(nullable=True, minimum=0, default=consts.CLUSTER_DEFAULT_MIN_SIZE), 'metadata': fields.JsonField(nullable=True, default={}), 'timeout': fields.NonNegativeIntegerField(nullable=True, default=CONF.default_action_timeout), }
class ClusterCreateRequestBody(base.SenlinObject): # VERSION 1.0: initial version # VERSION 1.1: added field 'config' VERSION = '1.1' VERSION_MAP = { '1.7': '1.1', } fields = { 'name': fields.NameField(), 'profile_id': fields.StringField(), 'min_size': fields.CapacityField( nullable=True, minimum=0, default=consts.CLUSTER_DEFAULT_MIN_SIZE), 'max_size': fields.CapacityField( nullable=True, minimum=-1, default=consts.CLUSTER_DEFAULT_MAX_SIZE), 'desired_capacity': fields.CapacityField( nullable=True, minimum=0), 'metadata': fields.JsonField(nullable=True, default={}), 'timeout': fields.NonNegativeIntegerField( nullable=True, default=CONF.default_action_timeout), 'config': fields.JsonField(nullable=True, default={}), } def obj_make_compatible(self, primitive, target_version): super(ClusterCreateRequest, self).obj_make_compatible( primitive, target_version) target_version = versionutils.convert_version_to_tuple(target_version) if target_version < (1, 1): if 'config' in primitive['senlin_object.data']: del primitive['senlin_object.data']['config']
class ProfileCreateRequestBody(base.SenlinObject): fields = { 'name': fields.NameField(), 'spec': fields.JsonField(), 'metadata': fields.JsonField(nullable=True, default={}), }
class ClusterUpdateRequest(base.SenlinObject): # VERSION 1.0: initial version # VERSION 1.1: added field 'profile_only' # VERSION 1.2: added field 'config' VERSION = '1.2' VERSION_MAP = { '1.6': '1.1', '1.7': '1.2', } fields = { 'identity': fields.StringField(), 'name': fields.NameField(nullable=True), 'profile_id': fields.StringField(nullable=True), 'metadata': fields.JsonField(nullable=True), 'timeout': fields.NonNegativeIntegerField(nullable=True), 'profile_only': fields.BooleanField(nullable=True), 'config': fields.JsonField(nullable=True), } def obj_make_compatible(self, primitive, target_version): super(ClusterUpdateRequest, self).obj_make_compatible( primitive, target_version) target_version = versionutils.convert_version_to_tuple(target_version) if target_version < (1, 1): if 'profile_only' in primitive['senlin_object.data']: del primitive['senlin_object.data']['profile_only'] if target_version < (1, 2): if 'config' in primitive['senlin_object.data']: del primitive['senlin_object.data']['config']
class ReceiverUpdateRequest(base.SenlinObject): fields = { 'identity': fields.StringField(), 'name': fields.NameField(nullable=True), 'action': fields.ClusterActionNameField(nullable=True), 'params': fields.JsonField(nullable=True, default={}) }
class NodeUpdateRequest(base.SenlinObject): fields = { 'identity': fields.StringField(), 'metadata': fields.JsonField(nullable=True), 'name': fields.NameField(nullable=True), 'profile_id': fields.StringField(nullable=True), 'role': fields.fields.StringField(nullable=True) }
class NodeCreateRequestBody(base.SenlinObject): fields = { 'cluster_id': fields.StringField(nullable=True, default=''), 'metadata': fields.JsonField(nullable=True, default={}), 'name': fields.NameField(), 'profile_id': fields.StringField(), 'role': fields.fields.StringField(nullable=True, default='') }
class ClusterUpdateRequest(base.SenlinObject): fields = { 'identity': fields.StringField(), 'name': fields.NameField(nullable=True), 'profile_id': fields.StringField(nullable=True), 'metadata': fields.JsonField(nullable=True), 'timeout': fields.IntegerField(nullable=True), }
class ReceiverCreateRequestBody(base.SenlinObject): fields = { 'name': fields.NameField(), 'type': fields.ReceiverTypeField(), 'cluster_id': fields.StringField(nullable=True), 'action': fields.ClusterActionNameField(nullable=True), 'actor': fields.JsonField(nullable=True, default={}), 'params': fields.JsonField(nullable=True, default={}) }
class NodeAdoptRequest(base.SenlinObject): fields = { 'identity': fields.StringField(), 'type': fields.StringField(), 'name': fields.NameField(nullable=True), 'role': fields.StringField(nullable=True), 'metadata': fields.JsonField(nullable=True, default={}), 'overrides': fields.JsonField(nullable=True), 'snapshot': fields.BooleanField(nullable=True, default=False) }
class ClusterPolicyListRequest(base.SenlinObject): fields = { 'identity': fields.StringField(), 'policy_name': fields.NameField(nullable=True), 'policy_type': fields.StringField(nullable=True), 'enabled': fields.BooleanField(nullable=True), 'sort': fields.SortField(valid_keys=list(consts.CLUSTER_POLICY_SORT_KEYS), nullable=True) }
def setUp(self): super(TestName, self).setUp() self.field = senlin_fields.NameField() self.coerce_good_values = [ ('name1', 'name1'), # plain string ('name2.sec', 'name2.sec'), # '.' okay ('123-sec', '123-sec'), # '-' okay ('123_sec', '123_sec'), # '_' okay ('123~sec', '123~sec'), # '~' okay ('557', '557'), # pure numeric okay ] self.coerce_bad_values = [ '', # too short 's' * 300, # too long 'ab/', # '/' illegal 's123$', # '$' illegal '13^gadf', # '^' illegal 'sad&cheer', # '&' illegal 'boo**', # '*' illegal 'kwsqu()', # '(' and ')' illegal 'bing+bang', # '+' illegal 'var=value', # '=' illegal 'quicksort[1]', # '[' and ']' illegal 'sdi{"gh"}', # '{' and '}' illegal 'gate open', # ' ' illegal '12.64%', # '%' illegal 'name#sign', # '#' illegal 'back\slash', # '\' illegal ' leading', # leading blank illegal 'trailing ', # trailing blank illegal '!okay', # '!' illegal '@author', # '@' illegal '`info`', # '`' illegal '"partial', # '"' illegal "'single", # ''' illegal '<max', # '<' illegal '>min', # '>' illegal 'question?', # '?' illegal 'first,second', # ',' illegal ] self.to_primitive_values = self.coerce_good_values[0:1] self.from_primitive_values = self.coerce_good_values[0:1]
class NodeUpdateRequest(base.SenlinObject): VERSION = '1.1' VERSION_MAP = {'1.13': '1.1'} fields = { 'identity': fields.StringField(), 'metadata': fields.JsonField(nullable=True), 'name': fields.NameField(nullable=True), 'profile_id': fields.StringField(nullable=True), 'role': fields.StringField(nullable=True), 'tainted': fields.BooleanField(nullable=True) } def obj_make_compatible(self, primitive, target_version): super(NodeUpdateRequest, self).obj_make_compatible(primitive, target_version) target_version = versionutils.convert_version_to_tuple(target_version) if target_version < (1, 13): if 'tainted' in primitive['senlin_object.data']: del primitive['senlin_object.data']['tainted']
class ProfileUpdateRequestBody(base.SenlinObject): fields = { 'name': fields.NameField(nullable=True), 'metadata': fields.JsonField(nullable=True) }
class PolicyUpdateRequestBody(base.SenlinObject): fields = {'name': fields.NameField()}
class PolicyCreateRequestBody(base.SenlinObject): fields = { 'name': fields.NameField(), 'spec': fields.JsonField(), }