root / snf-deploy / snfdeploy / fabfile2.py @ d9667d93
History | View | Annotate | Download (8.9 kB)
1 | 3c3bccab | Dimitris Aragiorgis | # Too many lines in module pylint: disable-msg=C0302
|
---|---|---|---|
2 | 3c3bccab | Dimitris Aragiorgis | # Too many arguments (7/5) pylint: disable-msg=R0913
|
3 | 3c3bccab | Dimitris Aragiorgis | |
4 | 3c3bccab | Dimitris Aragiorgis | # Copyright (C) 2010, 2011, 2012, 2013 GRNET S.A. All rights reserved.
|
5 | 3c3bccab | Dimitris Aragiorgis | #
|
6 | 3c3bccab | Dimitris Aragiorgis | # Redistribution and use in source and binary forms, with or
|
7 | 3c3bccab | Dimitris Aragiorgis | # without modification, are permitted provided that the following
|
8 | 3c3bccab | Dimitris Aragiorgis | # conditions are met:
|
9 | 3c3bccab | Dimitris Aragiorgis | #
|
10 | 3c3bccab | Dimitris Aragiorgis | # 1. Redistributions of source code must retain the above
|
11 | 3c3bccab | Dimitris Aragiorgis | # copyright notice, this list of conditions and the following
|
12 | 3c3bccab | Dimitris Aragiorgis | # disclaimer.
|
13 | 3c3bccab | Dimitris Aragiorgis | #
|
14 | 3c3bccab | Dimitris Aragiorgis | # 2. Redistributions in binary form must reproduce the above
|
15 | 3c3bccab | Dimitris Aragiorgis | # copyright notice, this list of conditions and the following
|
16 | 3c3bccab | Dimitris Aragiorgis | # disclaimer in the documentation and/or other materials
|
17 | 3c3bccab | Dimitris Aragiorgis | # provided with the distribution.
|
18 | 3c3bccab | Dimitris Aragiorgis | #
|
19 | 3c3bccab | Dimitris Aragiorgis | # THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
|
20 | 3c3bccab | Dimitris Aragiorgis | # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
21 | 3c3bccab | Dimitris Aragiorgis | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
22 | 3c3bccab | Dimitris Aragiorgis | # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A. OR
|
23 | 3c3bccab | Dimitris Aragiorgis | # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
24 | 3c3bccab | Dimitris Aragiorgis | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
25 | 3c3bccab | Dimitris Aragiorgis | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
26 | 3c3bccab | Dimitris Aragiorgis | # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
27 | 3c3bccab | Dimitris Aragiorgis | # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
28 | 3c3bccab | Dimitris Aragiorgis | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
29 | 3c3bccab | Dimitris Aragiorgis | # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30 | 3c3bccab | Dimitris Aragiorgis | # POSSIBILITY OF SUCH DAMAGE.
|
31 | 3c3bccab | Dimitris Aragiorgis | #
|
32 | 3c3bccab | Dimitris Aragiorgis | # The views and conclusions contained in the software and
|
33 | 3c3bccab | Dimitris Aragiorgis | # documentation are those of the authors and should not be
|
34 | 3c3bccab | Dimitris Aragiorgis | # interpreted as representing official policies, either expressed
|
35 | 3c3bccab | Dimitris Aragiorgis | # or implied, of GRNET S.A.
|
36 | 3c3bccab | Dimitris Aragiorgis | |
37 | 3c3bccab | Dimitris Aragiorgis | """
|
38 | 3c3bccab | Dimitris Aragiorgis | Fabric file for snf-deploy
|
39 | 3c3bccab | Dimitris Aragiorgis |
|
40 | 3c3bccab | Dimitris Aragiorgis | """
|
41 | 3c3bccab | Dimitris Aragiorgis | |
42 | 3c3bccab | Dimitris Aragiorgis | from __future__ import with_statement |
43 | 3c3bccab | Dimitris Aragiorgis | from fabric.api import hide, env, settings, local, roles, execute |
44 | 3c3bccab | Dimitris Aragiorgis | from fabric.operations import run, put, get |
45 | 3c3bccab | Dimitris Aragiorgis | import fabric |
46 | 3c3bccab | Dimitris Aragiorgis | import re |
47 | 3c3bccab | Dimitris Aragiorgis | import os |
48 | 3c3bccab | Dimitris Aragiorgis | import shutil |
49 | 3c3bccab | Dimitris Aragiorgis | import tempfile |
50 | 3c3bccab | Dimitris Aragiorgis | import ast |
51 | 3c3bccab | Dimitris Aragiorgis | from snfdeploy.lib import debug, Conf, Env, disable_color |
52 | 3c3bccab | Dimitris Aragiorgis | from snfdeploy.utils import * |
53 | 3c3bccab | Dimitris Aragiorgis | from snfdeploy import massedit |
54 | 3c3bccab | Dimitris Aragiorgis | from snfdeploy.components import * |
55 | 3c3bccab | Dimitris Aragiorgis | from snfdeploy import components |
56 | 3c3bccab | Dimitris Aragiorgis | |
57 | 3c3bccab | Dimitris Aragiorgis | |
58 | 3c3bccab | Dimitris Aragiorgis | def setup_env(args, localenv): |
59 | 3c3bccab | Dimitris Aragiorgis | """Setup environment"""
|
60 | 3c3bccab | Dimitris Aragiorgis | print("Loading configuration for synnefo...")
|
61 | 3c3bccab | Dimitris Aragiorgis | |
62 | 3c3bccab | Dimitris Aragiorgis | env.env = localenv |
63 | 3c3bccab | Dimitris Aragiorgis | |
64 | 3c3bccab | Dimitris Aragiorgis | env.target_node = args.node |
65 | 3c3bccab | Dimitris Aragiorgis | env.target_component = args.component |
66 | 3c3bccab | Dimitris Aragiorgis | env.target_method = args.method |
67 | 3c3bccab | Dimitris Aragiorgis | env.target_role = args.role |
68 | 3c3bccab | Dimitris Aragiorgis | env.dry_run = args.dry_run |
69 | 3c3bccab | Dimitris Aragiorgis | env.local = args.autoconf |
70 | 3c3bccab | Dimitris Aragiorgis | env.key_inject = args.key_inject |
71 | 3c3bccab | Dimitris Aragiorgis | env.password = env.env.password |
72 | 3c3bccab | Dimitris Aragiorgis | env.user = env.env.user |
73 | 3c3bccab | Dimitris Aragiorgis | env.shell = "/bin/bash -c"
|
74 | 3c3bccab | Dimitris Aragiorgis | env.key_filename = args.ssh_key |
75 | 3c3bccab | Dimitris Aragiorgis | env.jsonfile = "/tmp/service.json"
|
76 | 3c3bccab | Dimitris Aragiorgis | env.force = args.force |
77 | 3c3bccab | Dimitris Aragiorgis | |
78 | 3c3bccab | Dimitris Aragiorgis | if args.disable_colors:
|
79 | 3c3bccab | Dimitris Aragiorgis | disable_color() |
80 | 3c3bccab | Dimitris Aragiorgis | |
81 | 3c3bccab | Dimitris Aragiorgis | env.roledefs = { |
82 | 3c3bccab | Dimitris Aragiorgis | "accounts": [env.env.accounts.ip],
|
83 | 3c3bccab | Dimitris Aragiorgis | "cyclades": [env.env.cyclades.ip],
|
84 | 3c3bccab | Dimitris Aragiorgis | "pithos": [env.env.pithos.ip],
|
85 | 3c3bccab | Dimitris Aragiorgis | "cms": [env.env.cms.ip],
|
86 | 3c3bccab | Dimitris Aragiorgis | "mq": [env.env.mq.ip],
|
87 | 3c3bccab | Dimitris Aragiorgis | "db": [env.env.db.ip],
|
88 | 3c3bccab | Dimitris Aragiorgis | "ns": [env.env.ns.ip],
|
89 | 3c3bccab | Dimitris Aragiorgis | "client": [env.env.client.ip],
|
90 | 3c3bccab | Dimitris Aragiorgis | "stats": [env.env.stats.ip],
|
91 | 3c3bccab | Dimitris Aragiorgis | "nfs": [env.env.nfs.ip],
|
92 | 3c3bccab | Dimitris Aragiorgis | } |
93 | 3c3bccab | Dimitris Aragiorgis | |
94 | 3c3bccab | Dimitris Aragiorgis | env.enable_lvm = False
|
95 | 3c3bccab | Dimitris Aragiorgis | env.enable_drbd = False
|
96 | 3c3bccab | Dimitris Aragiorgis | if ast.literal_eval(env.env.create_extra_disk) and env.env.extra_disk: |
97 | 3c3bccab | Dimitris Aragiorgis | env.enable_lvm = True
|
98 | 3c3bccab | Dimitris Aragiorgis | env.enable_drbd = True
|
99 | 3c3bccab | Dimitris Aragiorgis | |
100 | 3c3bccab | Dimitris Aragiorgis | env.roledefs.update({ |
101 | 3c3bccab | Dimitris Aragiorgis | "ganeti": env.env.cluster_ips,
|
102 | 3c3bccab | Dimitris Aragiorgis | "master": [env.env.master.ip],
|
103 | 3c3bccab | Dimitris Aragiorgis | }) |
104 | 3c3bccab | Dimitris Aragiorgis | |
105 | 3c3bccab | Dimitris Aragiorgis | |
106 | 3c3bccab | Dimitris Aragiorgis | #
|
107 | 3c3bccab | Dimitris Aragiorgis | #
|
108 | 3c3bccab | Dimitris Aragiorgis | # Those methods retrieve info from existing installation and update env
|
109 | 3c3bccab | Dimitris Aragiorgis | #
|
110 | 3c3bccab | Dimitris Aragiorgis | #
|
111 | 3c3bccab | Dimitris Aragiorgis | @roles("db") |
112 | 3c3bccab | Dimitris Aragiorgis | def update_env_with_user_info(): |
113 | 3c3bccab | Dimitris Aragiorgis | user_email = env.env.user_email |
114 | 3c3bccab | Dimitris Aragiorgis | result = RunComponentMethod(DB, "get_user_info_from_db")
|
115 | 3c3bccab | Dimitris Aragiorgis | r = re.compile(r"(\d+)[ |]*(\S+)[ |]*(\S+)[ |]*" + user_email, re.M)
|
116 | 3c3bccab | Dimitris Aragiorgis | match = r.search(result) |
117 | 3c3bccab | Dimitris Aragiorgis | if env.dry_run:
|
118 | 3c3bccab | Dimitris Aragiorgis | env.user_id, env.user_auth_token, env.user_uuid = \ |
119 | 632ea467 | Dimitris Aragiorgis | ("dummy_uid", "dummy_user_auth_token", "dummy_user_uuid") |
120 | 3c3bccab | Dimitris Aragiorgis | else:
|
121 | 3c3bccab | Dimitris Aragiorgis | env.user_id, env.user_auth_token, env.user_uuid = match.groups() |
122 | 3c3bccab | Dimitris Aragiorgis | |
123 | 3c3bccab | Dimitris Aragiorgis | |
124 | 3c3bccab | Dimitris Aragiorgis | @roles("accounts") |
125 | 3c3bccab | Dimitris Aragiorgis | def update_env_with_service_info(service="pithos"): |
126 | 3c3bccab | Dimitris Aragiorgis | result = RunComponentMethod(Astakos, "get_services")
|
127 | 3c3bccab | Dimitris Aragiorgis | r = re.compile(r"(\d+)[ ]*%s[ ]*(\S+)" % service, re.M)
|
128 | d4f28d8f | Dimitris Aragiorgis | match = r.search(result) |
129 | 3c3bccab | Dimitris Aragiorgis | if env.dry_run:
|
130 | 3c3bccab | Dimitris Aragiorgis | env.service_id, env.service_token = \ |
131 | 3c3bccab | Dimitris Aragiorgis | ("dummy_service_id", "dummy_service_token") |
132 | 3c3bccab | Dimitris Aragiorgis | else:
|
133 | 3c3bccab | Dimitris Aragiorgis | env.service_id, env.service_token = match.groups() |
134 | 3c3bccab | Dimitris Aragiorgis | |
135 | 3c3bccab | Dimitris Aragiorgis | |
136 | 3c3bccab | Dimitris Aragiorgis | @roles("cyclades") |
137 | 3c3bccab | Dimitris Aragiorgis | def update_env_with_backend_info(): |
138 | 3c3bccab | Dimitris Aragiorgis | cluster_name = env.env.cluster.fqdn |
139 | 3c3bccab | Dimitris Aragiorgis | result = RunComponentMethod(Cyclades, "list_backends")
|
140 | 3c3bccab | Dimitris Aragiorgis | r = re.compile(r"(\d+)[ ]*%s.*" % cluster_name, re.M)
|
141 | 3c3bccab | Dimitris Aragiorgis | match = r.search(result) |
142 | 3c3bccab | Dimitris Aragiorgis | if env.dry_run:
|
143 | 3c3bccab | Dimitris Aragiorgis | env.backend_id = "dummy_backend_id"
|
144 | 3c3bccab | Dimitris Aragiorgis | else:
|
145 | 3c3bccab | Dimitris Aragiorgis | env.backend_id, = match.groups() |
146 | 3c3bccab | Dimitris Aragiorgis | |
147 | d4f28d8f | Dimitris Aragiorgis | |
148 | 3c3bccab | Dimitris Aragiorgis | #
|
149 | 3c3bccab | Dimitris Aragiorgis | #
|
150 | 3c3bccab | Dimitris Aragiorgis | # Those methods act on components after their basic setup
|
151 | 3c3bccab | Dimitris Aragiorgis | #
|
152 | 3c3bccab | Dimitris Aragiorgis | #
|
153 | 3c3bccab | Dimitris Aragiorgis | @roles("cyclades") |
154 | 3c3bccab | Dimitris Aragiorgis | def add_ganeti_backend(): |
155 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Cyclades, "add_backend")
|
156 | 3c3bccab | Dimitris Aragiorgis | execute(update_env_with_backend_info) |
157 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Cyclades, "undrain_backend")
|
158 | 3c3bccab | Dimitris Aragiorgis | |
159 | 3c3bccab | Dimitris Aragiorgis | |
160 | 3c3bccab | Dimitris Aragiorgis | @roles("accounts") |
161 | 3c3bccab | Dimitris Aragiorgis | def add_synnefo_user(): |
162 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Astakos, "add_user")
|
163 | 3c3bccab | Dimitris Aragiorgis | |
164 | 3c3bccab | Dimitris Aragiorgis | |
165 | 3c3bccab | Dimitris Aragiorgis | @roles("accounts") |
166 | 3c3bccab | Dimitris Aragiorgis | def activate_user(): |
167 | 3c3bccab | Dimitris Aragiorgis | execute(update_env_with_user_info) |
168 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Astakos, "activate_user")
|
169 | 3c3bccab | Dimitris Aragiorgis | |
170 | 3c3bccab | Dimitris Aragiorgis | |
171 | 3c3bccab | Dimitris Aragiorgis | @roles("accounts") |
172 | 3c3bccab | Dimitris Aragiorgis | def import_service(): |
173 | 3c3bccab | Dimitris Aragiorgis | f = env.jsonfile |
174 | 3c3bccab | Dimitris Aragiorgis | PutToComponent(Astakos, f + ".local", f)
|
175 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Astakos, "import_service")
|
176 | 3c3bccab | Dimitris Aragiorgis | |
177 | 3c3bccab | Dimitris Aragiorgis | |
178 | 3c3bccab | Dimitris Aragiorgis | @roles("ns") |
179 | 3c3bccab | Dimitris Aragiorgis | def update_ns_for_node(node_info): |
180 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(NS, "update_ns_for_node", node_info)
|
181 | 3c3bccab | Dimitris Aragiorgis | |
182 | 3c3bccab | Dimitris Aragiorgis | |
183 | 3c3bccab | Dimitris Aragiorgis | @roles("nfs") |
184 | 3c3bccab | Dimitris Aragiorgis | def update_exports_for_node(node_info): |
185 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(NFS, "update_exports", node_info)
|
186 | 3c3bccab | Dimitris Aragiorgis | |
187 | 3c3bccab | Dimitris Aragiorgis | |
188 | 3c3bccab | Dimitris Aragiorgis | @roles("master") |
189 | 3c3bccab | Dimitris Aragiorgis | def add_ganeti_node(node_info): |
190 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Master, "add_node", node_info)
|
191 | 3c3bccab | Dimitris Aragiorgis | |
192 | 3c3bccab | Dimitris Aragiorgis | |
193 | 3c3bccab | Dimitris Aragiorgis | @roles("db") |
194 | 3c3bccab | Dimitris Aragiorgis | def allow_db_access(node_info): |
195 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(DB, "allow_access_in_db", node_info, "all", "trust") |
196 | 3c3bccab | Dimitris Aragiorgis | |
197 | 3c3bccab | Dimitris Aragiorgis | |
198 | 3c3bccab | Dimitris Aragiorgis | @roles("accounts") |
199 | 3c3bccab | Dimitris Aragiorgis | def set_default_quota(): |
200 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Astakos, "set_default_quota")
|
201 | 3c3bccab | Dimitris Aragiorgis | |
202 | 3c3bccab | Dimitris Aragiorgis | |
203 | 3c3bccab | Dimitris Aragiorgis | @roles("cyclades") |
204 | 3c3bccab | Dimitris Aragiorgis | def add_public_networks(): |
205 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Cyclades, "add_network")
|
206 | 3c3bccab | Dimitris Aragiorgis | if ast.literal_eval(env.env.testing_vm):
|
207 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Cyclades, "add_network6")
|
208 | 3c3bccab | Dimitris Aragiorgis | |
209 | 3c3bccab | Dimitris Aragiorgis | |
210 | 3c3bccab | Dimitris Aragiorgis | @roles("client") |
211 | 3c3bccab | Dimitris Aragiorgis | def add_image(): |
212 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Kamaki, "fetch_image")
|
213 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Kamaki, "upload_image")
|
214 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Kamaki, "register_image")
|
215 | d4f28d8f | Dimitris Aragiorgis | |
216 | d4f28d8f | Dimitris Aragiorgis | |
217 | 3c3bccab | Dimitris Aragiorgis | #
|
218 | 3c3bccab | Dimitris Aragiorgis | #
|
219 | 3c3bccab | Dimitris Aragiorgis | # Those methods do the basic setup of a synnefo role
|
220 | 3c3bccab | Dimitris Aragiorgis | #
|
221 | 3c3bccab | Dimitris Aragiorgis | #
|
222 | 3c3bccab | Dimitris Aragiorgis | @roles("ns") |
223 | 3c3bccab | Dimitris Aragiorgis | def setup_ns_role(): |
224 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("ns")
|
225 | 3c3bccab | Dimitris Aragiorgis | |
226 | 3c3bccab | Dimitris Aragiorgis | |
227 | 3c3bccab | Dimitris Aragiorgis | @roles("nfs") |
228 | 3c3bccab | Dimitris Aragiorgis | def setup_nfs_role(): |
229 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("nfs")
|
230 | 3c3bccab | Dimitris Aragiorgis | |
231 | 3c3bccab | Dimitris Aragiorgis | |
232 | 3c3bccab | Dimitris Aragiorgis | @roles("db") |
233 | 3c3bccab | Dimitris Aragiorgis | def setup_db_role(): |
234 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("db")
|
235 | 3c3bccab | Dimitris Aragiorgis | if ast.literal_eval(env.env.testing_vm):
|
236 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(DB, "make_db_fast")
|
237 | 3c3bccab | Dimitris Aragiorgis | |
238 | 3c3bccab | Dimitris Aragiorgis | |
239 | 3c3bccab | Dimitris Aragiorgis | @roles("mq") |
240 | 3c3bccab | Dimitris Aragiorgis | def setup_mq_role(): |
241 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("mq")
|
242 | 3c3bccab | Dimitris Aragiorgis | |
243 | 3c3bccab | Dimitris Aragiorgis | |
244 | 3c3bccab | Dimitris Aragiorgis | @roles("accounts") |
245 | 3c3bccab | Dimitris Aragiorgis | def setup_astakos_role(): |
246 | 3c3bccab | Dimitris Aragiorgis | node_info = get_node_info(env.host) |
247 | 3c3bccab | Dimitris Aragiorgis | execute(allow_db_access, node_info) |
248 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("astakos")
|
249 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Astakos, "export_service")
|
250 | 3c3bccab | Dimitris Aragiorgis | f = env.jsonfile |
251 | 3c3bccab | Dimitris Aragiorgis | GetFromComponent(Astakos, f, f + ".local")
|
252 | 3c3bccab | Dimitris Aragiorgis | execute(import_service) |
253 | 3c3bccab | Dimitris Aragiorgis | |
254 | 3c3bccab | Dimitris Aragiorgis | |
255 | 3c3bccab | Dimitris Aragiorgis | @roles("pithos") |
256 | 3c3bccab | Dimitris Aragiorgis | def setup_pithos_role(): |
257 | 3c3bccab | Dimitris Aragiorgis | node_info = get_node_info(env.host) |
258 | 3c3bccab | Dimitris Aragiorgis | execute(allow_db_access, node_info) |
259 | 3c3bccab | Dimitris Aragiorgis | execute(update_env_with_service_info, "pithos")
|
260 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("pithos")
|
261 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Pithos, "export_service")
|
262 | 3c3bccab | Dimitris Aragiorgis | f = env.jsonfile |
263 | 3c3bccab | Dimitris Aragiorgis | GetFromComponent(Pithos, f, f + ".local")
|
264 | 3c3bccab | Dimitris Aragiorgis | execute(import_service) |
265 | 3c3bccab | Dimitris Aragiorgis | |
266 | 3c3bccab | Dimitris Aragiorgis | |
267 | 3c3bccab | Dimitris Aragiorgis | @roles("cyclades") |
268 | 3c3bccab | Dimitris Aragiorgis | def setup_cyclades_role(): |
269 | 3c3bccab | Dimitris Aragiorgis | node_info = get_node_info(env.host) |
270 | 3c3bccab | Dimitris Aragiorgis | execute(allow_db_access, node_info) |
271 | 3c3bccab | Dimitris Aragiorgis | execute(update_env_with_service_info, "cyclades")
|
272 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("cyclades")
|
273 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(Cyclades, "export_service")
|
274 | 3c3bccab | Dimitris Aragiorgis | f = env.jsonfile |
275 | 3c3bccab | Dimitris Aragiorgis | GetFromComponent(Cyclades, f, f + ".local")
|
276 | 3c3bccab | Dimitris Aragiorgis | execute(import_service) |
277 | 3c3bccab | Dimitris Aragiorgis | |
278 | 3c3bccab | Dimitris Aragiorgis | |
279 | 3c3bccab | Dimitris Aragiorgis | @roles("cms") |
280 | 3c3bccab | Dimitris Aragiorgis | def setup_cms_role(): |
281 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("cms")
|
282 | 3c3bccab | Dimitris Aragiorgis | |
283 | 3c3bccab | Dimitris Aragiorgis | |
284 | 3c3bccab | Dimitris Aragiorgis | @roles("ganeti") |
285 | 3c3bccab | Dimitris Aragiorgis | def setup_ganeti_role(): |
286 | 3c3bccab | Dimitris Aragiorgis | if not env.host: |
287 | 3c3bccab | Dimitris Aragiorgis | return
|
288 | 3c3bccab | Dimitris Aragiorgis | node_info = get_node_info(env.host) |
289 | 3c3bccab | Dimitris Aragiorgis | execute(update_exports_for_node, node_info) |
290 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("ganeti")
|
291 | 3c3bccab | Dimitris Aragiorgis | execute(add_ganeti_node, node_info) |
292 | 3c3bccab | Dimitris Aragiorgis | #FIXME: prepare_lvm ????
|
293 | 3c3bccab | Dimitris Aragiorgis | |
294 | 3c3bccab | Dimitris Aragiorgis | |
295 | 3c3bccab | Dimitris Aragiorgis | @roles("master") |
296 | 3c3bccab | Dimitris Aragiorgis | def setup_master_role(): |
297 | 3c3bccab | Dimitris Aragiorgis | node_info = get_node_info(env.host) |
298 | 3c3bccab | Dimitris Aragiorgis | execute(update_exports_for_node, node_info) |
299 | 3c3bccab | Dimitris Aragiorgis | execute(update_ns_for_node, env.env.cluster) |
300 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("master")
|
301 | 3c3bccab | Dimitris Aragiorgis | |
302 | 3c3bccab | Dimitris Aragiorgis | |
303 | 3c3bccab | Dimitris Aragiorgis | @roles("stats") |
304 | 3c3bccab | Dimitris Aragiorgis | def setup_stats_role(): |
305 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("stats")
|
306 | 3c3bccab | Dimitris Aragiorgis | |
307 | 3c3bccab | Dimitris Aragiorgis | |
308 | 3c3bccab | Dimitris Aragiorgis | @roles("client") |
309 | 3c3bccab | Dimitris Aragiorgis | def setup_client_role(): |
310 | 3c3bccab | Dimitris Aragiorgis | execute(update_env_with_user_info) |
311 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole("client")
|
312 | 3c3bccab | Dimitris Aragiorgis | |
313 | 3c3bccab | Dimitris Aragiorgis | |
314 | 3c3bccab | Dimitris Aragiorgis | def setup(): |
315 | 3c3bccab | Dimitris Aragiorgis | node_info = get_node_info(env.target_node) |
316 | 3c3bccab | Dimitris Aragiorgis | if not node_info: |
317 | 3c3bccab | Dimitris Aragiorgis | debug("setup", "Please give a valid node identifier") |
318 | 3c3bccab | Dimitris Aragiorgis | return
|
319 | 3c3bccab | Dimitris Aragiorgis | execute(update_ns_for_node, node_info) |
320 | 3c3bccab | Dimitris Aragiorgis | env.host = env.host_string = node_info.ip |
321 | 3c3bccab | Dimitris Aragiorgis | if env.target_role:
|
322 | 3c3bccab | Dimitris Aragiorgis | SetupSynnefoRole(env.target_role) |
323 | 3c3bccab | Dimitris Aragiorgis | return
|
324 | 3c3bccab | Dimitris Aragiorgis | if not env.target_component: |
325 | 3c3bccab | Dimitris Aragiorgis | debug("setup", "Please give a valid Component") |
326 | 3c3bccab | Dimitris Aragiorgis | return
|
327 | 3c3bccab | Dimitris Aragiorgis | component_class = getattr(components, env.target_component)
|
328 | 3c3bccab | Dimitris Aragiorgis | if not env.target_method: |
329 | 3c3bccab | Dimitris Aragiorgis | debug("setup", "Please give a valid Component method") |
330 | 3c3bccab | Dimitris Aragiorgis | return
|
331 | 3c3bccab | Dimitris Aragiorgis | RunComponentMethod(component_class, env.target_method) |