forked from openshift/origin-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
load_balancer.rb
133 lines (106 loc) · 3.96 KB
/
load_balancer.rb
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
module OpenShift
class LBModelException < StandardError; end
# == Abstract routing model class
#
# Presents direct access to a load balancer. This is an abstract class.
#
class LoadBalancerModel
def get_pool_names
end
# create_pool :: String, String -> undefined
# Note: At least one of create_pool and create_pools must be implemented.
def create_pool pool_name, monitor_name
end
# create_pools :: [String], [String] -> undefined
# Note: At least one of create_pool and create_pools must be implemented.
def create_pools pool_names, monitor_names
pool_names.zip(monitor_names).map {|pool_name, monitor_name| create_pool pool_name, monitor_name}.flatten 1
end
# delete_pool :: String -> undefined
# Note: At least one of delete_pool and delete_pools must be implemented.
def delete_pool pool_name
end
# delete_pools :: [String] -> undefined
# Note: At least one of delete_pool and delete_pools must be implemented.
def delete_pools pool_names
pool_names.map {|pool_name| delete_pool pool_name}.flatten 1
end
# get_monitor_names :: [String]
def get_monitor_names
[]
end
# create_monitor :: String, String, String, String, String, String -> undefined
def create_monitor monitor_name, path, up_code, type, interval, timeout
end
# delete_monitor :: String, String -> undefined
def delete_monitor monitor_name, type
end
def get_pool_certificates pool_name
@logger.debug "get pool certificates #{pool_name}"
[] # Return an array of String representing certificates.
end
# get_pool_members :: String -> [String]
def get_pool_members pool_name
[]
end
# get_active_pool_members :: String -> [String]
def get_active_pool_members pool_name
[]
end
# add_pool_member :: String, String, Integer -> undefined
# Note: At least one of add_pool_member and add_pool_members must be
# implemented.
def add_pool_member pool_name, address, port
add_pool_members [pool_name], [[[address, port]]]
end
# add_pool_members :: [String], [[[String,Integer]]] -> undefined
# Each member comprises an IP address in dotted-quad representation and a port.
# Note: At least one of add_pool_member and add_pool_members must be
# implemented.
def add_pool_members pool_names, member_lists
(pool_names.zip member_lists).map do |pool,members|
members.map {|address,port| add_pool_member pool, address, port}
end.flatten 2
end
# delete_pool_member :: String, String, Integer -> undefined
# Note: At least one of delete_pool_member and delete_pool_members must be
# implemented.
def delete_pool_member pool_name, address, port
delete_pool_members [pool_name], [[[address, port]]]
end
# delete_pool_members :: [String], [[[String,Integer]]] -> undefined
# Note: At least one of delete_pool_member and delete_pool_members must be
# implemented.
def delete_pool_members pool_names, member_lists
(pool_names.zip member_lists).map do |pool,members|
members.map {|address,port| delete_pool_member pool, address, port}
end.flatten 2
end
# get_pool_aliases :: String -> [String]
def get_pool_aliases pool_name
[]
end
# add_pool_alias :: String, String -> undefined
def add_pool_alias pool_name, alias_str
end
# delete_pool_alias :: String, String -> undefined
def delete_pool_alias pool_name, alias_str
end
# add_ssl :: String, String, String, String
def add_ssl pool_name, alias_str, ssl_cert, private_key
end
# remove_ssl pool_name, alias_str :: String, String
def remove_ssl pool_name, alias_str
end
# get_job_status :: String -> Object
# This is only needed if the model is being used with
# AsyncLoadBalancerController.
def get_job_status id
end
def authenticate
end
def initialize cfgfile=nil
@cfgfile = cfgfile
end
end
end