root / snf-astakos-app / astakos / scripts / snf_service_export.py @ 5bc77346
History | View | Annotate | Download (7.2 kB)
1 | 21879b7f | Giorgos Korfiatis | import os |
---|---|---|---|
2 | 21879b7f | Giorgos Korfiatis | os.environ['DJANGO_SETTINGS_MODULE'] = 'synnefo.settings' |
3 | 21879b7f | Giorgos Korfiatis | from optparse import OptionParser |
4 | 21879b7f | Giorgos Korfiatis | from synnefo.lib.services import fill_endpoints, filter_public |
5 | 21879b7f | Giorgos Korfiatis | from django.utils import simplejson as json |
6 | 21879b7f | Giorgos Korfiatis | |
7 | 21879b7f | Giorgos Korfiatis | |
8 | 21879b7f | Giorgos Korfiatis | astakos_services = { |
9 | 21879b7f | Giorgos Korfiatis | 'astakos_account': {
|
10 | 21879b7f | Giorgos Korfiatis | 'type': 'account', |
11 | 21879b7f | Giorgos Korfiatis | 'component': 'astakos', |
12 | 21879b7f | Giorgos Korfiatis | 'prefix': 'account', |
13 | 21879b7f | Giorgos Korfiatis | 'public': True, |
14 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
15 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v1.0', |
16 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
17 | 21879b7f | Giorgos Korfiatis | ], |
18 | 21879b7f | Giorgos Korfiatis | 'resources': {
|
19 | 21879b7f | Giorgos Korfiatis | 'pending_app': {
|
20 | 21879b7f | Giorgos Korfiatis | 'desc': "Number of pending project applications", |
21 | 21879b7f | Giorgos Korfiatis | 'name': "astakos.pending_app", |
22 | 21879b7f | Giorgos Korfiatis | 'service_type': "account", |
23 | 21879b7f | Giorgos Korfiatis | 'service_origin': "astakos_account", |
24 | 21879b7f | Giorgos Korfiatis | 'allow_in_projects': False}, |
25 | 21879b7f | Giorgos Korfiatis | }, |
26 | 21879b7f | Giorgos Korfiatis | }, |
27 | 21879b7f | Giorgos Korfiatis | |
28 | 923e6582 | Georgios D. Tsoukalas | 'astakos_identity': {
|
29 | 21879b7f | Giorgos Korfiatis | 'type': 'identity', |
30 | 21879b7f | Giorgos Korfiatis | 'component': 'astakos', |
31 | 21879b7f | Giorgos Korfiatis | 'prefix': 'identity', |
32 | 21879b7f | Giorgos Korfiatis | 'public': True, |
33 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
34 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v2.0', |
35 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
36 | 21879b7f | Giorgos Korfiatis | ], |
37 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
38 | 21879b7f | Giorgos Korfiatis | }, |
39 | 21879b7f | Giorgos Korfiatis | |
40 | 559f8135 | Giorgos Korfiatis | 'astakos_weblogin': {
|
41 | 559f8135 | Giorgos Korfiatis | 'type': 'astakos_weblogin', |
42 | 559f8135 | Giorgos Korfiatis | 'component': 'astakos', |
43 | 559f8135 | Giorgos Korfiatis | 'prefix': 'weblogin', |
44 | 559f8135 | Giorgos Korfiatis | 'public': True, |
45 | 559f8135 | Giorgos Korfiatis | 'endpoints': [
|
46 | 559f8135 | Giorgos Korfiatis | {'versionId': '', |
47 | 559f8135 | Giorgos Korfiatis | 'publicURL': None}, |
48 | 559f8135 | Giorgos Korfiatis | ], |
49 | 559f8135 | Giorgos Korfiatis | }, |
50 | 559f8135 | Giorgos Korfiatis | |
51 | 21879b7f | Giorgos Korfiatis | 'astakos_ui': {
|
52 | 21879b7f | Giorgos Korfiatis | 'type': 'astakos_ui', |
53 | 21879b7f | Giorgos Korfiatis | 'component': 'astakos', |
54 | 21879b7f | Giorgos Korfiatis | 'prefix': 'ui', |
55 | 21879b7f | Giorgos Korfiatis | 'public': False, |
56 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
57 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
58 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
59 | 21879b7f | Giorgos Korfiatis | ], |
60 | 21879b7f | Giorgos Korfiatis | }, |
61 | 21879b7f | Giorgos Korfiatis | } |
62 | 21879b7f | Giorgos Korfiatis | |
63 | 21879b7f | Giorgos Korfiatis | cyclades_services = { |
64 | 21879b7f | Giorgos Korfiatis | 'cyclades_compute': {
|
65 | 21879b7f | Giorgos Korfiatis | 'type': 'compute', |
66 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
67 | 21879b7f | Giorgos Korfiatis | 'prefix': 'compute', |
68 | 21879b7f | Giorgos Korfiatis | 'public': True, |
69 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
70 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v2.0', |
71 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
72 | 21879b7f | Giorgos Korfiatis | ], |
73 | 21879b7f | Giorgos Korfiatis | 'resources': {
|
74 | 21879b7f | Giorgos Korfiatis | 'vm': {
|
75 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.vm", |
76 | 21879b7f | Giorgos Korfiatis | "desc": "Number of virtual machines", |
77 | 21879b7f | Giorgos Korfiatis | "service_type": "compute", |
78 | 21879b7f | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
79 | 21879b7f | Giorgos Korfiatis | }, |
80 | 21879b7f | Giorgos Korfiatis | 'cpu': {
|
81 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.cpu", |
82 | 21879b7f | Giorgos Korfiatis | "desc": "Number of virtual machine processors", |
83 | 21879b7f | Giorgos Korfiatis | "service_type": "compute", |
84 | 21879b7f | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
85 | 21879b7f | Giorgos Korfiatis | }, |
86 | 5febd1fa | Giorgos Korfiatis | 'active_cpu': {
|
87 | 5febd1fa | Giorgos Korfiatis | "name": "cyclades.active_cpu", |
88 | 5febd1fa | Giorgos Korfiatis | "desc": "Number of virtual machine processors of running" |
89 | 5febd1fa | Giorgos Korfiatis | " servers",
|
90 | 5febd1fa | Giorgos Korfiatis | "service_type": "compute", |
91 | 5febd1fa | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
92 | 5febd1fa | Giorgos Korfiatis | }, |
93 | 21879b7f | Giorgos Korfiatis | 'ram': {
|
94 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.ram", |
95 | 21879b7f | Giorgos Korfiatis | "desc": "Virtual machine memory size", |
96 | 21879b7f | Giorgos Korfiatis | "unit": "bytes", |
97 | 21879b7f | Giorgos Korfiatis | "service_type": "compute", |
98 | 21879b7f | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
99 | 21879b7f | Giorgos Korfiatis | }, |
100 | 5febd1fa | Giorgos Korfiatis | 'active_ram': {
|
101 | 5febd1fa | Giorgos Korfiatis | "name": "cyclades.active_ram", |
102 | 5febd1fa | Giorgos Korfiatis | "desc": "Virtual machine memory size of running servers", |
103 | 5febd1fa | Giorgos Korfiatis | "unit": "bytes", |
104 | 5febd1fa | Giorgos Korfiatis | "service_type": "compute", |
105 | 5febd1fa | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
106 | 5febd1fa | Giorgos Korfiatis | }, |
107 | 21879b7f | Giorgos Korfiatis | 'disk': {
|
108 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.disk", |
109 | 21879b7f | Giorgos Korfiatis | "desc": "Virtual machine disk size", |
110 | 21879b7f | Giorgos Korfiatis | "unit": "bytes", |
111 | 21879b7f | Giorgos Korfiatis | "service_type": "compute", |
112 | 21879b7f | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
113 | 21879b7f | Giorgos Korfiatis | }, |
114 | 21879b7f | Giorgos Korfiatis | 'network-private': {
|
115 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.network.private", |
116 | 21879b7f | Giorgos Korfiatis | "desc": "Number of private networks", |
117 | 21879b7f | Giorgos Korfiatis | "service_type": "compute", |
118 | 21879b7f | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
119 | 21879b7f | Giorgos Korfiatis | }, |
120 | 5febd1fa | Giorgos Korfiatis | 'floating_ip': {
|
121 | 5febd1fa | Giorgos Korfiatis | "name": "cyclades.floating_ip", |
122 | 5febd1fa | Giorgos Korfiatis | "desc": "Number of Floating IP addresses", |
123 | 5febd1fa | Giorgos Korfiatis | "service_type": "compute", |
124 | 5febd1fa | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
125 | 5febd1fa | Giorgos Korfiatis | }, |
126 | 21879b7f | Giorgos Korfiatis | }, |
127 | 21879b7f | Giorgos Korfiatis | }, |
128 | 21879b7f | Giorgos Korfiatis | |
129 | 21879b7f | Giorgos Korfiatis | 'cyclades_plankton': {
|
130 | 21879b7f | Giorgos Korfiatis | 'type': 'image', |
131 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
132 | 21879b7f | Giorgos Korfiatis | 'prefix': 'image', |
133 | 21879b7f | Giorgos Korfiatis | 'public': True, |
134 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
135 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v1.0', |
136 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
137 | 21879b7f | Giorgos Korfiatis | ], |
138 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
139 | 21879b7f | Giorgos Korfiatis | }, |
140 | 21879b7f | Giorgos Korfiatis | |
141 | 21879b7f | Giorgos Korfiatis | 'cyclades_vmapi': {
|
142 | 5febd1fa | Giorgos Korfiatis | 'type': 'vmapi', |
143 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
144 | 21879b7f | Giorgos Korfiatis | 'prefix': 'vmapi', |
145 | 21879b7f | Giorgos Korfiatis | 'public': True, |
146 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
147 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v1.0', |
148 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
149 | 21879b7f | Giorgos Korfiatis | ], |
150 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
151 | 21879b7f | Giorgos Korfiatis | }, |
152 | 21879b7f | Giorgos Korfiatis | |
153 | 21879b7f | Giorgos Korfiatis | 'cyclades_helpdesk': {
|
154 | 21879b7f | Giorgos Korfiatis | 'type': 'cyclades_helpdesk', |
155 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
156 | 21879b7f | Giorgos Korfiatis | 'prefix': 'helpdesk', |
157 | 21879b7f | Giorgos Korfiatis | 'public': False, |
158 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
159 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
160 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
161 | 21879b7f | Giorgos Korfiatis | ], |
162 | 21879b7f | Giorgos Korfiatis | }, |
163 | 21879b7f | Giorgos Korfiatis | |
164 | 21879b7f | Giorgos Korfiatis | 'cyclades_userdata': {
|
165 | 21879b7f | Giorgos Korfiatis | 'type': 'cyclades_userdata', |
166 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
167 | 21879b7f | Giorgos Korfiatis | 'prefix': 'userdata', |
168 | 21879b7f | Giorgos Korfiatis | 'public': False, |
169 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
170 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
171 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
172 | 21879b7f | Giorgos Korfiatis | ], |
173 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
174 | 21879b7f | Giorgos Korfiatis | }, |
175 | 21879b7f | Giorgos Korfiatis | |
176 | 21879b7f | Giorgos Korfiatis | 'cyclades_ui': {
|
177 | 21879b7f | Giorgos Korfiatis | 'type': 'cyclades_ui', |
178 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
179 | 21879b7f | Giorgos Korfiatis | 'prefix': 'ui', |
180 | 21879b7f | Giorgos Korfiatis | 'public': False, |
181 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
182 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
183 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
184 | 21879b7f | Giorgos Korfiatis | ], |
185 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
186 | 21879b7f | Giorgos Korfiatis | }, |
187 | 5febd1fa | Giorgos Korfiatis | |
188 | 5febd1fa | Giorgos Korfiatis | 'cyclades_admin': {
|
189 | 5febd1fa | Giorgos Korfiatis | 'type': 'admin', |
190 | 5febd1fa | Giorgos Korfiatis | 'component': 'cyclades', |
191 | 5febd1fa | Giorgos Korfiatis | 'prefix': 'admin', |
192 | 5febd1fa | Giorgos Korfiatis | 'public': True, |
193 | 5febd1fa | Giorgos Korfiatis | 'endpoints': [
|
194 | 5febd1fa | Giorgos Korfiatis | {'versionId': '', |
195 | 5febd1fa | Giorgos Korfiatis | 'publicURL': None}, |
196 | 5febd1fa | Giorgos Korfiatis | ], |
197 | 5febd1fa | Giorgos Korfiatis | 'resources': {},
|
198 | 5febd1fa | Giorgos Korfiatis | }, |
199 | 21879b7f | Giorgos Korfiatis | } |
200 | 21879b7f | Giorgos Korfiatis | |
201 | 21879b7f | Giorgos Korfiatis | pithos_services = { |
202 | 21879b7f | Giorgos Korfiatis | 'pithos_object-store': {
|
203 | 21879b7f | Giorgos Korfiatis | 'type': 'object-store', |
204 | 21879b7f | Giorgos Korfiatis | 'component': 'pithos', |
205 | 21879b7f | Giorgos Korfiatis | 'prefix': 'object-store', |
206 | 21879b7f | Giorgos Korfiatis | 'public': True, |
207 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
208 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v1', |
209 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
210 | 21879b7f | Giorgos Korfiatis | ], |
211 | 21879b7f | Giorgos Korfiatis | 'resources': {
|
212 | 21879b7f | Giorgos Korfiatis | 'diskspace': {
|
213 | 21879b7f | Giorgos Korfiatis | "desc": "Pithos account diskspace", |
214 | 21879b7f | Giorgos Korfiatis | "name": "pithos.diskspace", |
215 | 21879b7f | Giorgos Korfiatis | "unit": "bytes", |
216 | 21879b7f | Giorgos Korfiatis | "service_type": "object-store", |
217 | 21879b7f | Giorgos Korfiatis | "service_origin": "pithos_object-store", |
218 | 21879b7f | Giorgos Korfiatis | }, |
219 | 21879b7f | Giorgos Korfiatis | }, |
220 | 21879b7f | Giorgos Korfiatis | }, |
221 | 21879b7f | Giorgos Korfiatis | |
222 | 21879b7f | Giorgos Korfiatis | 'pithos_public': {
|
223 | 759b8a43 | Giorgos Korfiatis | 'type': 'pithos_public', |
224 | 21879b7f | Giorgos Korfiatis | 'component': 'pithos', |
225 | db4761e6 | Giorgos Korfiatis | 'prefix': 'public', |
226 | a08f9369 | Giorgos Korfiatis | 'public': False, |
227 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
228 | 759b8a43 | Giorgos Korfiatis | {'versionId': '', |
229 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
230 | 21879b7f | Giorgos Korfiatis | ], |
231 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
232 | 21879b7f | Giorgos Korfiatis | }, |
233 | 21879b7f | Giorgos Korfiatis | |
234 | 21879b7f | Giorgos Korfiatis | 'pithos_ui': {
|
235 | 21879b7f | Giorgos Korfiatis | 'type': 'pithos_ui', |
236 | 21879b7f | Giorgos Korfiatis | 'component': 'pithos', |
237 | 21879b7f | Giorgos Korfiatis | 'prefix': 'ui', |
238 | 21879b7f | Giorgos Korfiatis | 'public': False, |
239 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
240 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
241 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
242 | 21879b7f | Giorgos Korfiatis | ], |
243 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
244 | 21879b7f | Giorgos Korfiatis | }, |
245 | 21879b7f | Giorgos Korfiatis | } |
246 | 21879b7f | Giorgos Korfiatis | |
247 | 21879b7f | Giorgos Korfiatis | |
248 | 21879b7f | Giorgos Korfiatis | definitions = { |
249 | 21879b7f | Giorgos Korfiatis | 'astakos': astakos_services,
|
250 | 21879b7f | Giorgos Korfiatis | 'cyclades': cyclades_services,
|
251 | 21879b7f | Giorgos Korfiatis | 'pithos': pithos_services,
|
252 | 21879b7f | Giorgos Korfiatis | } |
253 | 21879b7f | Giorgos Korfiatis | |
254 | 21879b7f | Giorgos Korfiatis | |
255 | 21879b7f | Giorgos Korfiatis | def print_definitions(d, base_url): |
256 | 21879b7f | Giorgos Korfiatis | fill_endpoints(d, base_url) |
257 | 21879b7f | Giorgos Korfiatis | print json.dumps(filter_public(d), indent=4) |
258 | 21879b7f | Giorgos Korfiatis | |
259 | 21879b7f | Giorgos Korfiatis | |
260 | 21879b7f | Giorgos Korfiatis | usage = "usage: %prog <component_name> <base_url>"
|
261 | 21879b7f | Giorgos Korfiatis | parser = OptionParser(usage=usage) |
262 | 21879b7f | Giorgos Korfiatis | |
263 | 21879b7f | Giorgos Korfiatis | |
264 | 21879b7f | Giorgos Korfiatis | def main(): |
265 | 21879b7f | Giorgos Korfiatis | (options, args) = parser.parse_args() |
266 | 21879b7f | Giorgos Korfiatis | if len(args) != 2: |
267 | 21879b7f | Giorgos Korfiatis | parser.error("Wrong number of arguments.")
|
268 | 21879b7f | Giorgos Korfiatis | component = args[0]
|
269 | 21879b7f | Giorgos Korfiatis | try:
|
270 | 21879b7f | Giorgos Korfiatis | services = definitions[component] |
271 | 21879b7f | Giorgos Korfiatis | except KeyError: |
272 | 21879b7f | Giorgos Korfiatis | print "Unrecognized component %s" % component |
273 | 21879b7f | Giorgos Korfiatis | exit(1) |
274 | 21879b7f | Giorgos Korfiatis | base_url = args[1]
|
275 | 21879b7f | Giorgos Korfiatis | print_definitions(services, base_url) |
276 | 21879b7f | Giorgos Korfiatis | |
277 | 21879b7f | Giorgos Korfiatis | if __name__ == '__main__': |
278 | 21879b7f | Giorgos Korfiatis | main() |