root / snf-astakos-app / astakos / scripts / snf_service_export.py @ 5718706f
History | View | Annotate | Download (6.4 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 | 21879b7f | Giorgos Korfiatis | 'ram': {
|
87 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.ram", |
88 | 21879b7f | Giorgos Korfiatis | "desc": "Virtual machine memory size", |
89 | 21879b7f | Giorgos Korfiatis | "unit": "bytes", |
90 | 21879b7f | Giorgos Korfiatis | "service_type": "compute", |
91 | 21879b7f | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
92 | 21879b7f | Giorgos Korfiatis | }, |
93 | 21879b7f | Giorgos Korfiatis | 'disk': {
|
94 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.disk", |
95 | 21879b7f | Giorgos Korfiatis | "desc": "Virtual machine disk 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 | 21879b7f | Giorgos Korfiatis | 'network-private': {
|
101 | 21879b7f | Giorgos Korfiatis | "name": "cyclades.network.private", |
102 | 21879b7f | Giorgos Korfiatis | "desc": "Number of private networks", |
103 | 21879b7f | Giorgos Korfiatis | "service_type": "compute", |
104 | 21879b7f | Giorgos Korfiatis | "service_origin": "cyclades_compute", |
105 | 21879b7f | Giorgos Korfiatis | }, |
106 | 21879b7f | Giorgos Korfiatis | }, |
107 | 21879b7f | Giorgos Korfiatis | }, |
108 | 21879b7f | Giorgos Korfiatis | |
109 | 21879b7f | Giorgos Korfiatis | 'cyclades_plankton': {
|
110 | 21879b7f | Giorgos Korfiatis | 'type': 'image', |
111 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
112 | 21879b7f | Giorgos Korfiatis | 'prefix': 'image', |
113 | 21879b7f | Giorgos Korfiatis | 'public': True, |
114 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
115 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v1.0', |
116 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
117 | 21879b7f | Giorgos Korfiatis | ], |
118 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
119 | 21879b7f | Giorgos Korfiatis | }, |
120 | 21879b7f | Giorgos Korfiatis | |
121 | 21879b7f | Giorgos Korfiatis | 'cyclades_vmapi': {
|
122 | 5718706f | Giorgos Korfiatis | 'type': 'vmapi', |
123 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
124 | 21879b7f | Giorgos Korfiatis | 'prefix': 'vmapi', |
125 | 21879b7f | Giorgos Korfiatis | 'public': True, |
126 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
127 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v1.0', |
128 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
129 | 21879b7f | Giorgos Korfiatis | ], |
130 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
131 | 21879b7f | Giorgos Korfiatis | }, |
132 | 21879b7f | Giorgos Korfiatis | |
133 | 21879b7f | Giorgos Korfiatis | 'cyclades_helpdesk': {
|
134 | 21879b7f | Giorgos Korfiatis | 'type': 'cyclades_helpdesk', |
135 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
136 | 21879b7f | Giorgos Korfiatis | 'prefix': 'helpdesk', |
137 | 21879b7f | Giorgos Korfiatis | 'public': False, |
138 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
139 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
140 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
141 | 21879b7f | Giorgos Korfiatis | ], |
142 | 21879b7f | Giorgos Korfiatis | }, |
143 | 21879b7f | Giorgos Korfiatis | |
144 | 21879b7f | Giorgos Korfiatis | 'cyclades_userdata': {
|
145 | 21879b7f | Giorgos Korfiatis | 'type': 'cyclades_userdata', |
146 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
147 | 21879b7f | Giorgos Korfiatis | 'prefix': 'userdata', |
148 | 21879b7f | Giorgos Korfiatis | 'public': False, |
149 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
150 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
151 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
152 | 21879b7f | Giorgos Korfiatis | ], |
153 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
154 | 21879b7f | Giorgos Korfiatis | }, |
155 | 21879b7f | Giorgos Korfiatis | |
156 | 21879b7f | Giorgos Korfiatis | 'cyclades_ui': {
|
157 | 21879b7f | Giorgos Korfiatis | 'type': 'cyclades_ui', |
158 | 21879b7f | Giorgos Korfiatis | 'component': 'cyclades', |
159 | 21879b7f | Giorgos Korfiatis | 'prefix': 'ui', |
160 | 21879b7f | Giorgos Korfiatis | 'public': False, |
161 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
162 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
163 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
164 | 21879b7f | Giorgos Korfiatis | ], |
165 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
166 | 21879b7f | Giorgos Korfiatis | }, |
167 | 5718706f | Giorgos Korfiatis | |
168 | 5718706f | Giorgos Korfiatis | 'cyclades_admin': {
|
169 | 5718706f | Giorgos Korfiatis | 'type': 'admin', |
170 | 5718706f | Giorgos Korfiatis | 'component': 'cyclades', |
171 | 5718706f | Giorgos Korfiatis | 'prefix': 'admin', |
172 | 5718706f | Giorgos Korfiatis | 'public': True, |
173 | 5718706f | Giorgos Korfiatis | 'endpoints': [
|
174 | 5718706f | Giorgos Korfiatis | {'versionId': '', |
175 | 5718706f | Giorgos Korfiatis | 'publicURL': None}, |
176 | 5718706f | Giorgos Korfiatis | ], |
177 | 5718706f | Giorgos Korfiatis | 'resources': {},
|
178 | 5718706f | Giorgos Korfiatis | }, |
179 | 21879b7f | Giorgos Korfiatis | } |
180 | 21879b7f | Giorgos Korfiatis | |
181 | 21879b7f | Giorgos Korfiatis | pithos_services = { |
182 | 21879b7f | Giorgos Korfiatis | 'pithos_object-store': {
|
183 | 21879b7f | Giorgos Korfiatis | 'type': 'object-store', |
184 | 21879b7f | Giorgos Korfiatis | 'component': 'pithos', |
185 | 21879b7f | Giorgos Korfiatis | 'prefix': 'object-store', |
186 | 21879b7f | Giorgos Korfiatis | 'public': True, |
187 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
188 | 21879b7f | Giorgos Korfiatis | {'versionId': 'v1', |
189 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
190 | 21879b7f | Giorgos Korfiatis | ], |
191 | 21879b7f | Giorgos Korfiatis | 'resources': {
|
192 | 21879b7f | Giorgos Korfiatis | 'diskspace': {
|
193 | 21879b7f | Giorgos Korfiatis | "desc": "Pithos account diskspace", |
194 | 21879b7f | Giorgos Korfiatis | "name": "pithos.diskspace", |
195 | 21879b7f | Giorgos Korfiatis | "unit": "bytes", |
196 | 21879b7f | Giorgos Korfiatis | "service_type": "object-store", |
197 | 21879b7f | Giorgos Korfiatis | "service_origin": "pithos_object-store", |
198 | 21879b7f | Giorgos Korfiatis | }, |
199 | 21879b7f | Giorgos Korfiatis | }, |
200 | 21879b7f | Giorgos Korfiatis | }, |
201 | 21879b7f | Giorgos Korfiatis | |
202 | 21879b7f | Giorgos Korfiatis | 'pithos_public': {
|
203 | 21879b7f | Giorgos Korfiatis | 'type': 'public', |
204 | 21879b7f | Giorgos Korfiatis | 'component': 'pithos', |
205 | db4761e6 | Giorgos Korfiatis | 'prefix': 'public', |
206 | a08f9369 | Giorgos Korfiatis | 'public': False, |
207 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
208 | a08f9369 | Giorgos Korfiatis | {'versionId': 'v1.0', |
209 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
210 | 21879b7f | Giorgos Korfiatis | ], |
211 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
212 | 21879b7f | Giorgos Korfiatis | }, |
213 | 21879b7f | Giorgos Korfiatis | |
214 | 21879b7f | Giorgos Korfiatis | 'pithos_ui': {
|
215 | 21879b7f | Giorgos Korfiatis | 'type': 'pithos_ui', |
216 | 21879b7f | Giorgos Korfiatis | 'component': 'pithos', |
217 | 21879b7f | Giorgos Korfiatis | 'prefix': 'ui', |
218 | 21879b7f | Giorgos Korfiatis | 'public': False, |
219 | 21879b7f | Giorgos Korfiatis | 'endpoints': [
|
220 | 21879b7f | Giorgos Korfiatis | {'versionId': '', |
221 | 21879b7f | Giorgos Korfiatis | 'publicURL': None}, |
222 | 21879b7f | Giorgos Korfiatis | ], |
223 | 21879b7f | Giorgos Korfiatis | 'resources': {},
|
224 | 21879b7f | Giorgos Korfiatis | }, |
225 | 21879b7f | Giorgos Korfiatis | } |
226 | 21879b7f | Giorgos Korfiatis | |
227 | 21879b7f | Giorgos Korfiatis | |
228 | 21879b7f | Giorgos Korfiatis | definitions = { |
229 | 21879b7f | Giorgos Korfiatis | 'astakos': astakos_services,
|
230 | 21879b7f | Giorgos Korfiatis | 'cyclades': cyclades_services,
|
231 | 21879b7f | Giorgos Korfiatis | 'pithos': pithos_services,
|
232 | 21879b7f | Giorgos Korfiatis | } |
233 | 21879b7f | Giorgos Korfiatis | |
234 | 21879b7f | Giorgos Korfiatis | |
235 | 21879b7f | Giorgos Korfiatis | def print_definitions(d, base_url): |
236 | 21879b7f | Giorgos Korfiatis | fill_endpoints(d, base_url) |
237 | 21879b7f | Giorgos Korfiatis | print json.dumps(filter_public(d), indent=4) |
238 | 21879b7f | Giorgos Korfiatis | |
239 | 21879b7f | Giorgos Korfiatis | |
240 | 21879b7f | Giorgos Korfiatis | usage = "usage: %prog <component_name> <base_url>"
|
241 | 21879b7f | Giorgos Korfiatis | parser = OptionParser(usage=usage) |
242 | 21879b7f | Giorgos Korfiatis | |
243 | 21879b7f | Giorgos Korfiatis | |
244 | 21879b7f | Giorgos Korfiatis | def main(): |
245 | 21879b7f | Giorgos Korfiatis | (options, args) = parser.parse_args() |
246 | 21879b7f | Giorgos Korfiatis | if len(args) != 2: |
247 | 21879b7f | Giorgos Korfiatis | parser.error("Wrong number of arguments.")
|
248 | 21879b7f | Giorgos Korfiatis | component = args[0]
|
249 | 21879b7f | Giorgos Korfiatis | try:
|
250 | 21879b7f | Giorgos Korfiatis | services = definitions[component] |
251 | 21879b7f | Giorgos Korfiatis | except KeyError: |
252 | 21879b7f | Giorgos Korfiatis | print "Unrecognized component %s" % component |
253 | 21879b7f | Giorgos Korfiatis | exit(1) |
254 | 21879b7f | Giorgos Korfiatis | base_url = args[1]
|
255 | 21879b7f | Giorgos Korfiatis | print_definitions(services, base_url) |
256 | 21879b7f | Giorgos Korfiatis | |
257 | 21879b7f | Giorgos Korfiatis | if __name__ == '__main__': |
258 | 21879b7f | Giorgos Korfiatis | main() |