File: info.py

package info (click to toggle)
python-marathon 0.13.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 460 kB
  • sloc: python: 1,969; makefile: 185; sh: 58
file content (231 lines) | stat: -rw-r--r-- 9,813 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
from .base import MarathonObject, MarathonResource


class MarathonInfo(MarathonResource):

    """Marathon Info.

    See:  https://mesosphere.github.io/marathon/docs/rest-api.html#get-v2-info
    Also: https://mesosphere.github.io/marathon/docs/generated/api.html#v2_info_get

    :param str framework_id:
    :param str leader:
    :param marathon_config:
    :type marathon_config: :class:`marathon.models.info.MarathonConfig` or dict
    :param str name:
    :param str version:
    :param zookeeper_config:
    :type zookeeper_config: :class:`marathon.models.info.MarathonZooKeeperConfig` or dict
    :param http_config:
    :type http_config: :class:`marathon.models.info.MarathonHttpConfig` or dict
    :param event_subscriber:
    :type event_subscriber: :class`marathon.models.info.MarathonEventSubscriber` or dict
    :param bool elected:
    :param str buildref:
    """

    def __init__(self, event_subscriber=None, framework_id=None, http_config=None, leader=None, marathon_config=None,
                 name=None, version=None, elected=None, zookeeper_config=None, buildref=None):
        if isinstance(event_subscriber, MarathonEventSubscriber):
            self.event_subscriber = event_subscriber
        elif event_subscriber is not None:
            self.event_subscriber = MarathonEventSubscriber().from_json(
                event_subscriber)
        else:
            self.event_subscriber = None
        self.framework_id = framework_id
        self.http_config = http_config if isinstance(http_config, MarathonHttpConfig) \
            else MarathonHttpConfig().from_json(http_config)
        self.leader = leader
        self.marathon_config = marathon_config if isinstance(marathon_config, MarathonConfig) \
            else MarathonConfig().from_json(marathon_config)
        self.name = name
        self.version = version
        self.elected = elected
        self.zookeeper_config = zookeeper_config if isinstance(zookeeper_config, MarathonZooKeeperConfig) \
            else MarathonZooKeeperConfig().from_json(zookeeper_config)
        self.buildref = buildref


class MarathonConfig(MarathonObject):

    """Marathon config resource.

    See: https://mesosphere.github.io/marathon/docs/rest-api.html#get-/v2/info

    :param bool checkpoint:
    :param str executor:
    :param int failover_timeout:
    :param type features: Undocumented object
    :param str framework_name:
    :param bool ha:
    :param str hostname:
    :param int leader_proxy_connection_timeout_ms:
    :param int leader_proxy_read_timeout_ms:
    :param int local_port_min:
    :param int local_port_max:
    :param bool maintenance_mode:
    :param str master:
    :param str mesos_leader_ui_url:
    :param str mesos_role:
    :param str mesos_user:
    :param str new_group_enforce_role:
    :param str webui_url:
    :param int reconciliation_initial_delay:
    :param int reconciliation_interval:
    :param int task_launch_timeout:
    :param int task_reservation_timeout:
    :param int marathon_store_timeout:
    :param str access_control_allow_origin:
    :param int decline_offer_duration:
    :param str default_network_name:
    :param str env_vars_prefix:
    :param int launch_token:
    :param int launch_token_refresh_interval:
    :param int max_instances_per_offer:
    :param str mesos_bridge_name:
    :param int mesos_heartbeat_failure_threshold:
    :param int mesos_heartbeat_interval:
    :param int min_revive_offers_interval:
    :param int offer_matching_timeout:
    :param int on_elected_prepare_timeout:
    :param bool revive_offers_for_new_apps:
    :param int revive_offers_repetitions:
    :param int scale_apps_initial_delay:
    :param int scale_apps_interval:
    :param bool store_cache:
    :param int task_launch_confirm_timeout:
    :param int task_lost_expunge_initial_delay:
    :param int task_lost_expunge_interval:
    """

    def __init__(self, checkpoint=None, executor=None, failover_timeout=None, framework_name=None, ha=None,
                 hostname=None, leader_proxy_connection_timeout_ms=None, leader_proxy_read_timeout_ms=None,
                 local_port_min=None, local_port_max=None, maintenance_mode=None, master=None, mesos_leader_ui_url=None,
                 mesos_role=None, mesos_user=None, new_group_enforce_role=None, webui_url=None,
                 reconciliation_initial_delay=None, reconciliation_interval=None, task_launch_timeout=None,
                 marathon_store_timeout=None, task_reservation_timeout=None, features=None,
                 access_control_allow_origin=None, decline_offer_duration=None, default_network_name=None,
                 env_vars_prefix=None, launch_token=None, launch_token_refresh_interval=None,
                 max_instances_per_offer=None, mesos_bridge_name=None,
                 mesos_heartbeat_failure_threshold=None,
                 mesos_heartbeat_interval=None, min_revive_offers_interval=None,
                 offer_matching_timeout=None, on_elected_prepare_timeout=None,
                 revive_offers_for_new_apps=None,
                 revive_offers_repetitions=None, scale_apps_initial_delay=None,
                 scale_apps_interval=None, store_cache=None,
                 task_launch_confirm_timeout=None,
                 task_lost_expunge_initial_delay=None,
                 task_lost_expunge_interval=None
                 ):
        self.checkpoint = checkpoint
        self.executor = executor
        self.failover_timeout = failover_timeout
        self.features = features
        self.ha = ha
        self.hostname = hostname
        self.local_port_min = local_port_min
        self.local_port_max = local_port_max
        self.maintenance_mode = maintenance_mode
        self.master = master
        self.mesos_leader_ui_url = mesos_leader_ui_url
        self.mesos_role = mesos_role
        self.mesos_user = mesos_user
        self.new_group_enforce_role = new_group_enforce_role
        self.webui_url = webui_url
        self.reconciliation_initial_delay = reconciliation_initial_delay
        self.reconciliation_interval = reconciliation_interval
        self.task_launch_timeout = task_launch_timeout
        self.task_reservation_timeout = task_reservation_timeout
        self.marathon_store_timeout = marathon_store_timeout
        self.access_control_allow_origin = access_control_allow_origin
        self.decline_offer_duration = decline_offer_duration
        self.default_network_name = default_network_name
        self.env_vars_prefix = env_vars_prefix
        self.launch_token = launch_token
        self.launch_token_refresh_interval = launch_token_refresh_interval
        self.max_instances_per_offer = max_instances_per_offer
        self.mesos_bridge_name = mesos_bridge_name
        self.mesos_heartbeat_failure_threshold = mesos_heartbeat_failure_threshold
        self.mesos_heartbeat_interval = mesos_heartbeat_interval
        self.min_revive_offers_interval = min_revive_offers_interval
        self.offer_matching_timeout = offer_matching_timeout
        self.on_elected_prepare_timeout = on_elected_prepare_timeout
        self.revive_offers_for_new_apps = revive_offers_for_new_apps
        self.revive_offers_repetitions = revive_offers_repetitions
        self.scale_apps_initial_delay = scale_apps_initial_delay
        self.scale_apps_interval = scale_apps_interval
        self.store_cache = store_cache
        self.task_launch_confirm_timeout = task_launch_confirm_timeout
        self.task_lost_expunge_initial_delay = task_lost_expunge_initial_delay
        self.task_lost_expunge_interval = task_lost_expunge_interval


class MarathonZooKeeperConfig(MarathonObject):

    """Marathon zookeeper config resource.

    See: https://mesosphere.github.io/marathon/docs/rest-api.html#get-/v2/info

    :param str zk:
    :param dict zk_future_timeout:
    :param str zk_hosts:
    :param str zk_max_versions:
    :param str zk_path:
    :param str zk_session_timeout:
    :param str zk_state:
    :param int zk_timeout:
    :param int zk_connection_timeout:
    :param bool zk_compression:
    :param int zk_compression_threshold:
    :param int zk_max_node_size:
    """

    def __init__(self, zk=None, zk_future_timeout=None, zk_hosts=None, zk_max_versions=None, zk_path=None,
                 zk_session_timeout=None, zk_state=None, zk_timeout=None, zk_connection_timeout=None,
                 zk_compression=None, zk_compression_threshold=None,
                 zk_max_node_size=None):
        self.zk = zk
        self.zk_hosts = zk_hosts
        self.zk_path = zk_path
        self.zk_state = zk_state
        self.zk_max_versions = zk_max_versions
        self.zk_timeout = zk_timeout
        self.zk_connection_timeout = zk_connection_timeout
        self.zk_future_timeout = zk_future_timeout
        self.zk_session_timeout = zk_session_timeout
        self.zk_compression = zk_compression
        self.zk_compression_threshold = zk_compression_threshold
        self.zk_max_node_size = zk_max_node_size


class MarathonHttpConfig(MarathonObject):

    """Marathon http config resource.

    See: https://mesosphere.github.io/marathon/docs/rest-api.html#get-/v2/info

    :param str assets_path:
    :param int http_port:
    :param int https_port:
    """

    def __init__(self, assets_path=None, http_port=None, https_port=None):
        self.assets_path = assets_path
        self.http_port = http_port
        self.https_port = https_port


class MarathonEventSubscriber(MarathonObject):

    """Marathon event subscriber resource.

    See: https://mesosphere.github.io/marathon/docs/rest-api.html#get-/v2/info

    :param str type:
    :param list[str] http_endpoints:
    """

    def __init__(self, type=None, http_endpoints=None):
        self.type = type
        self.http_endpoints = http_endpoints