X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fcm-plugins.git;a=blobdiff_plain;f=inventoryhandlers%2Fstorageinventory%2Fstorageinventory.py;fp=inventoryhandlers%2Fstorageinventory%2Fstorageinventory.py;h=d8a74a5fdc1484aabbe5d6736c27c87b2464123a;hp=73a75b0531e0b19ec27616c1598867535de77cad;hb=5c3f9f389f46f719579ac4cd4065490b1723ebff;hpb=e8deeb0fdaa020920f27a3a0f6a4355808dd11f6 diff --git a/inventoryhandlers/storageinventory/storageinventory.py b/inventoryhandlers/storageinventory/storageinventory.py index 73a75b0..d8a74a5 100755 --- a/inventoryhandlers/storageinventory/storageinventory.py +++ b/inventoryhandlers/storageinventory/storageinventory.py @@ -15,6 +15,7 @@ # pylint: disable=missing-docstring,invalid-name,too-few-public-methods,too-many-instance-attributes,too-many-lines import os import json +import subprocess from jinja2 import Environment from cmframework.apis import cmansibleinventoryconfig from cmframework.apis import cmerror @@ -570,7 +571,7 @@ JSON_CEPH_ANSIBLE_MONS_HOST_VARS = """ "openstack_keys": [ { "acls": [], - "key": "$(ceph-authtool --gen-print-key)", + "key": "{{ ceph_keys['client.shared'] }}", "mode": "0600", "mon_cap": "allow r", "name": "client.shared", @@ -578,7 +579,7 @@ JSON_CEPH_ANSIBLE_MONS_HOST_VARS = """ }{% if is_openstack_deployment %}, { "acls": [], - "key": "$(ceph-authtool --gen-print-key)", + "key": "{{ ceph_keys['client.glance'] }}", "mode": "0640", "mon_cap": "allow r", "name": "client.glance", @@ -586,7 +587,7 @@ JSON_CEPH_ANSIBLE_MONS_HOST_VARS = """ }, { "acls": [], - "key": "$(ceph-authtool --gen-print-key)", + "key": "{{ ceph_keys['client.cinder'] }}", "mode": "0640", "mon_cap": "allow r, allow command \\\\\\\\\\\\\\"osd blacklist\\\\\\\\\\\\\\"", "name": "client.cinder", @@ -596,7 +597,7 @@ JSON_CEPH_ANSIBLE_MONS_HOST_VARS = """ {%- if is_caas_deployment and 0 < osd_pool_caas_pg_num %}, { "acls": [], - "key": "$(ceph-authtool --gen-print-key)", + "key": "{{ ceph_keys['client.caas'] }}", "mode": "0600", "mon_cap": "allow r", "name": "client.caas", @@ -689,6 +690,7 @@ class storageinventory(cmansibleinventoryconfig.CMAnsibleInventoryConfigPlugin): self._caas_config_handler = self.confman.get_caas_config_handler() self._ceph_caas_pg_proportion = 0.0 self._ceph_openstack_pg_proportion = 0.0 + self._ceph_keys_dict = None self._cinder_pool_name = 'volumes' self._glance_pool_name = 'images' self._nova_pool_name = 'vms' @@ -888,6 +890,21 @@ class storageinventory(cmansibleinventoryconfig.CMAnsibleInventoryConfigPlugin): hosts=self.hosts, **self._get_ceph_vars()) + @property + def _ceph_keys(self): + if not self._ceph_keys_dict: + try: + self._ceph_keys_dict = { + 'client.shared': subprocess.check_output(["ceph-authtool", "--gen-print-key"]).strip(), + 'client.glance': subprocess.check_output(["ceph-authtool", "--gen-print-key"]).strip(), + 'client.cinder': subprocess.check_output(["ceph-authtool", "--gen-print-key"]).strip(), + 'client.caas': subprocess.check_output(["ceph-authtool", "--gen-print-key"]).strip() + } + except Exception as exp: + raise cmerror.CMError(str(exp)) + + return self._ceph_keys_dict + def _get_ceph_vars(self): return { 'osd_pool_images_pg_num': self._calculated_images_pg_num, @@ -901,7 +918,8 @@ class storageinventory(cmansibleinventoryconfig.CMAnsibleInventoryConfigPlugin): 'nova_pool': self._nova_pool_name, 'glance_pool': self._glance_pool_name, 'cinder_pool': self._cinder_pool_name, - 'platform_pool': self._platform_pool_name + 'platform_pool': self._platform_pool_name, + 'ceph_keys': self._ceph_keys } def _add_ceph_ansible_osds_sample_host_vars(self):