108 lines
2.8 KiB
Python
108 lines
2.8 KiB
Python
# Copyright (c) 2014 Baidu.com, Inc. All Rights Reserved
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
|
|
# except in compliance with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software distributed under the
|
|
# License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
# either express or implied. See the License for the specific language governing permissions
|
|
# and limitations under the License.
|
|
|
|
"""
|
|
This module provides a model class for OOS.
|
|
"""
|
|
|
|
|
|
class OperatorModel(dict):
|
|
"""
|
|
This class define operator.
|
|
"""
|
|
def __init__(self, name, operator, properties, retries=0, retry_interval=60000, timeout=3600000, description=""):
|
|
"""
|
|
:param name:
|
|
Operator name.
|
|
:type name: string
|
|
|
|
:param operator:
|
|
Operator type.
|
|
:type operator: string
|
|
|
|
:param properties:
|
|
Operator execute parameters.
|
|
:type properties: dict
|
|
|
|
:param retries:
|
|
Operator retry count.
|
|
:type retries: int
|
|
|
|
:param retry_interval:
|
|
Operator retry interval.
|
|
:type retries: int
|
|
|
|
:param timeout:
|
|
Operator execute timeout.
|
|
:type timeout: int
|
|
|
|
:param description:
|
|
Operator description.
|
|
:type description: string
|
|
"""
|
|
super(OperatorModel, self).__init__()
|
|
self["name"] = name
|
|
self["operator"] = operator
|
|
self["properties"] = properties
|
|
self["retries"] = retries
|
|
self["retryInterval"] = retry_interval
|
|
self["timeout"] = timeout
|
|
self["description"] = description
|
|
|
|
|
|
class TemplateModel(dict):
|
|
"""
|
|
This class define template.
|
|
"""
|
|
def __init__(self, name, operators=[], linear=True, ref=""):
|
|
"""
|
|
:param name:
|
|
Template name.
|
|
:type name: string
|
|
|
|
:param operators:
|
|
Include template operators to execute.
|
|
:type operators: OperatorModel array
|
|
|
|
:param linear:
|
|
Operator execute linearly.
|
|
:type linear: bool
|
|
|
|
:param ref:
|
|
template id.
|
|
:type ref: string
|
|
"""
|
|
super(TemplateModel, self).__init__()
|
|
self["name"] = name
|
|
self["ref"] = ref
|
|
self["operators"] = operators
|
|
self["linear"] = linear
|
|
|
|
|
|
class TagModel(dict):
|
|
"""
|
|
This class define tag.
|
|
"""
|
|
def __init__(self, key, value):
|
|
"""
|
|
:param key:
|
|
Tag key.
|
|
:type key: string
|
|
|
|
:param value:
|
|
Tag value.
|
|
:type value: string
|
|
"""
|
|
super(TagModel, self).__init__()
|
|
self["tagKey"] = key
|
|
self["tagValue"] = value
|