Merge changes from topic "rmq_standalone" into release/2019.2.0
* changes:
Added check of ssl options for nova cells database_connection
For support non-clustered RabbitMQ configuration added check of use_vip_address option for nova.controller.nova_update_cell1 state
diff --git a/_states/novang.py b/_states/novang.py
index b496117..88cffcb 100644
--- a/_states/novang.py
+++ b/_states/novang.py
@@ -65,10 +65,14 @@
'changes': {},
'result': False,
'comment': 'Cell "{0}" does not exists'.format(name)}
- cell_uuid = __salt__['cmd.shell']('nova-manage cell_v2 list_cells 2>/dev/null | awk \'/' + name + '/ {print $4}\'')
+ cell_uuid, ssl_enable = (__salt__['cmd.shell']('nova-manage cell_v2 list_cells 2>/dev/null | awk \'/' + name + '/ {print $4, $8}\'')).split(' ', 1)
+ if 'ssl' in ssl_enable:
+ db_options = '?charset=utf8&ssl_ca=/etc/nova/ssl/mysql/ca-cert.pem&ssl_cert=/etc/nova/ssl/mysql/client-cert.pem&ssl_key=/etc/nova/ssl/mysql/client-key.pem'
+ else:
+ db_options = '?charset=utf8'
if cell_uuid:
try:
- __salt__['cmd.shell']('nova-manage cell_v2 update_cell --cell_uuid ' + cell_uuid + ' --transport-url ' + transport_url + ' --database_connection ' + db_engine + '+pymysql://' + db_user + ':' + db_password + '@' + db_address + '/' + db_name + '?charset=utf8')
+ __salt__['cmd.shell']('nova-manage cell_v2 update_cell --cell_uuid ' + cell_uuid + ' --transport-url ' + transport_url + ' --database_connection ' + '"' + db_engine + '+pymysql://' + db_user + ':' + db_password + '@' + db_address + '/' + db_name + db_options + '"')
ret['result'] = True
ret['comment'] = 'Cell {0} updated'.format(name)
ret['changes'][name] = 'Cell {0} successfuly updated'.format(name)
diff --git a/nova/controller.sls b/nova/controller.sls
index dfd33ff..73ff759 100644
--- a/nova/controller.sls
+++ b/nova/controller.sls
@@ -390,7 +390,7 @@
novang.update_cell:
- name: "cell1"
- db_name: {{ controller.database.name }}
-{%- if controller.message_queue.members is defined %}
+{%- if controller.message_queue.members is defined and not controller.message_queue.get('use_vip_address', False) %}
- transport_url: rabbit://{% for member in controller.message_queue.members -%}
{{ controller.message_queue.user }}:{{ controller.message_queue.password }}@{{ member.host }}:{{ member.get('port', rabbit_port) }}
{%- if not loop.last -%},{%- endif -%}