3 ܓi@sZddlZddlmZmZmZmZGdddeZGdddeeeZGdddeeZdS) N)Plugin RedHatPlugin DebianPlugin UbuntuPluginc@s<eZdZdZdZdZdZdZdZdd Z d d Z d d Z dS)OpenStackCinderzOpenStack cinderZopenstack_cinder openstackopenstack_controller .*cinder_apiz,/var/lib/config-data/puppet-generated/cinderNc Cs>|jdd}d}dddg}d}x|D]}|j|}|r&Pq&W|jd}|rV||j}|s`|r|jd |d d d |jd |d |jd |d|jd |d|jd|dddd9D}ddd:D}t|ot|s|jjdnddddddg} x | D]} |jd | d!qWd"d#d$d%d&dg} x | D]} |jd | d'qBWd(} |j | } | d)d*kr| d+} x2| j D]&}|j d*}d,|} |j| qW|jd|j d-|jd-|jd.|jd/|jd0|jd1|jd2g|j d3r"|j d4d5|jd6gn|j d7d5|jd8gdS);Nz/etc/cinder/volumesz--config-dir %s/etc/cinder/Z cinder_wsgiz cinder-wsgiz cinder-apiFz .*cinder_apizcinder-manage z db versionZcinder_db_version)Zsuggest_filenamez backup listz config listz host listzcinder-status z upgrade checkcSsg|]}|tjkqS)osenviron).0pr r &/usr/lib/python3.6/openstack_cinder.py Bsz)OpenStackCinder.setup.. OS_USERNAME OS_PASSWORDcSsg|]}|tjkqSr )r r )rrr r rrEsOS_TENANT_NAMEOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.z backend poolz group typemessageZqosZservicetypezopenstack volume z listZbackupgroupzgroup snapshotZsnapshotztransfer requestz list --all-projectsz-openstack volume list -f value --all-projectsZstatusroutputzopenstack volume show z /etc/cinder/z/etc/httpd/conf/z/etc/httpd/conf.d/z /etc/httpd/conf.modules.d/*.confz/etc/my.cnf.d/tripleo.cnfz/etc/sysconfig/Zall_logsz/var/log/cinder/z /var/log/z */cinder*z/var/log/cinder/*.logz */cinder*.log)rr)rr)Zadd_forbidden_pathZcheck_process_by_nameZcontainer_existsvar_puppet_genZadd_cmd_outputallanyZsoslogZwarningZexec_cmd splitlinessplit add_copy_specZ get_option apachepkg)selfZ cinder_configZcinder_config_optZcinder_processZin_psZprocessZ in_containerZvars_allZvars_anyZ list_cmdscmdZlist_cmds_projectsresZcinder_volumesZvolumer r rsetups               zOpenStackCinder.setupcCs&|jd|||j|jd||dS)z Apply regex substitution z /etc/cinder/*N)Zdo_path_regex_subr)r!ZregexpZsubstr r rapply_regex_subszOpenStackCinder.apply_regex_subcCsNddddg}dg}dj|}|jddj|dd |jd|d d dS) Nz.*_pass(wd|word)?z.*_keys?ZpasswordZ transport_urlZ connection|z(^\s*(z )\s*=\s*)(.*)z \1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z \1*********\6)joinr%)r!Z protect_keysZconnection_keysZ join_con_keysr r rpostprocs  zOpenStackCinder.postproc)rr)r ) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZ containersrr r$r%r(r r r rrskrc@seZdZdZdZd Zd S) DebianCinderFZapache2 cinder-api cinder-backup cinder-commoncinder-scheduler cinder-volume python-cinderpython3-cinderN)r-r.r/r0r1r2r3)r)r*r+cinderr packagesr r r rr,sr,cs(eZdZdZdZdZfddZZS) RedHatCinderFZhttpdopenstack-selinuxcstj|jdgdS)Nz/etc/sudoers.d/cinder)superr$r)r!) __class__r rr$s zRedHatCinder.setup)r7)r)r*r+r4r r5r$ __classcell__r r )r9rr6sr6) r Zsos.report.pluginsrrrrrr,r6r r r rs