blob: 75d240b6ea2d52b6cb9d292f480b6b0cb7de9113 [file] [log] [blame]
Filip Pytlound681ae22015-10-06 16:28:31 +02001{%- from "glance/map.jinja" import server with context %}
2{%- if server.enabled %}
3
4glance_packages:
5 pkg.installed:
6 - names: {{ server.pkgs }}
7
8{%- if not salt['user.info']('glance') %}
9glance_user:
10 user.present:
11 - name: glance
12 - home: /var/lib/glance
13 - uid: 302
14 - gid: 302
15 - shell: /bin/false
16 - system: True
17 - require_in:
18 - pkg: glance_packages
19
20glance_group:
21 group.present:
22 - name: glance
23 - gid: 302
24 - system: True
25 - require_in:
26 - pkg: glance_packages
27 - user: glance_user
28{%- endif %}
29
30/etc/glance/glance-cache.conf:
31 file.managed:
32 - source: salt://glance/files/{{ server.version }}/glance-cache.conf.{{ grains.os_family }}
33 - template: jinja
34 - require:
35 - pkg: glance_packages
36
37/etc/glance/glance-registry.conf:
38 file.managed:
39 - source: salt://glance/files/{{ server.version }}/glance-registry.conf.{{ grains.os_family }}
40 - template: jinja
41 - require:
42 - pkg: glance_packages
43
44/etc/glance/glance-scrubber.conf:
45 file.managed:
46 - source: salt://glance/files/{{ server.version }}/glance-scrubber.conf.{{ grains.os_family }}
47 - template: jinja
48 - require:
49 - pkg: glance_packages
50
51/etc/glance/glance-api.conf:
52 file.managed:
53 - source: salt://glance/files/{{ server.version }}/glance-api.conf.{{ grains.os_family }}
54 - template: jinja
55 - require:
56 - pkg: glance_packages
57
58/etc/glance/glance-api-paste.ini:
59 file.managed:
60 - source: salt://glance/files/{{ server.version }}/glance-api-paste.ini
61 - template: jinja
62 - require:
63 - pkg: glance_packages
64 - watch_in:
65 - service: glance_services
66
67glance_services:
68 service.running:
69 - enable: true
70 - names: {{ server.services }}
71 - watch:
72 - file: /etc/glance/glance-api.conf
73 - file: /etc/glance/glance-registry.conf
74
75glance_install_database:
76 cmd.run:
77 - name: glance-manage db_sync
78 - require:
79 - service: glance_services
80
81/srv/glance:
82 file.directory:
83 - user: root
84 - group: root
85 - mode: 755
86 - makedirs: true
87 - require:
88 - cmd: glance_install_database
89
90{%- for image in server.get('images', []) %}
91
92glance_download_{{ image.name }}:
93 cmd.run:
94 - name: wget {{ image.source }}
95 - unless: "test -e {{ image.file }}"
96 - cwd: /srv/glance
97 - require:
98 - file: /srv/glance
99
100glance_install_{{ image.name }}:
101 cmd.wait:
102 - name: source /root/keystonerc; glance image-create --name '{{ image.name }}' --is-public {{ image.public }} --container-format bare --disk-format {{ image.format }} < {{ image.file }}
103 - cwd: /srv/glance
104 - require:
105 - service: glance_services
106 - watch:
107 - cmd: glance_download_{{ image.name }}
108
109{%- endfor %}
110
111{%- for image_name, image in server.get('image', {}).iteritems() %}
112
113glance_download_{{ image_name }}:
114 cmd.run:
115 - name: wget {{ image.source }}
116 - unless: "test -e {{ image.file }}"
117 - cwd: /srv/glance
118 - require:
119 - file: /srv/glance
120
121glance_install_image_{{ image_name }}:
122 cmd.run:
123 - name: source /root/keystonerc; glance image-create --name '{{ image_name }}' --is-public {{ image.public }} --container-format bare --disk-format {{ image.format }} < /srv/glance/{{ image.file }}
124 - require:
125 - service: glance_services
126 - cmd: glance_download_{{ image_name }}
127 - unless:
128 - cmd: source /root/keystonerc && glance image-list | grep {{ image_name }}
129
130{%- endfor %}
131
132{%- if server.policy is defined %}
133
134{%- for key, policy in server.policy.iteritems() %}
135
136policy_{{ key }}:
137 file.replace:
138 - name: /etc/glance/policy.json
139 - pattern: "[\"']{{ key }}[\"']:.*"
140 {# unfortunatately there's no jsonify filter so we have to do magic :-( #}
141 - repl: '"{{ key }}": {% if policy is iterable %}[{%- for rule in policy %}"{{ rule }}"{% if not loop.last %}, {% endif %}{%- endfor %}]{%- else %}"{{ policy }}"{%- endif %},'
142
143{%- endfor %}
144
145{%- endif %}
146
147{%- endif %}