3 ܓi"@sbddlZddlZddlmZmZmZmZGdddeZGdddeeeZGdddeeZ dS) N)Plugin RedHatPlugin DebianPlugin UbuntuPluginc@sFeZdZdZdZdZdZdZd Zd Z d gZ d d Z ddZ ddZ d S) OpenStackNovazOpenStack NovaZopenstack_nova openstackopenstack_controlleropenstack_computeopenstack_edpm .*nova_apiz*/var/lib/config-data/puppet-generated/novazopenstack-nova-api.serviceNz /etc/nova/csfjd}jjs|rfd}|r2djd}jd|dddjd|d d djd|d d djd |ddddddCD}dddDD}t|ot|sĈjjdnjdjdjdjdjdjdjdj d}|d d!krf|d"}x:|j d#dED]&}|j d$}d%|}j|qjd?jd@gtttjdAjfdBd| D} j | dS)FNz .*nova_apiz --config-dir z /etc/nova/z nova-manage z db versionznova-manage_db_version)Zsuggest_filenamez fixed listznova-manage_fixed_listz floating listznova-manage_floating_listz nova-status z upgrade checkznova-status_upgrade_checkcSsg|]}|tjkqS)osenviron).0pr r $/usr/lib/python3.6/openstack_nova.py @sz'OpenStackNova.setup.. OS_USERNAME OS_PASSWORDcSsg|]}|tjkqSr )rr)rrr r rrCsOS_TENANT_NAMEOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.zopenstack compute service listzopenstack flavor list --longzopenstack compute agent listznova version-listzopenstack hypervisor listzopenstack quota showzopenstack hypervisor stats showz$openstack server list --all-projectsZstatusroutputzopenstack server show all_logsz/var/log/nova/z /var/log/z*/nova*z%/var/lib/nova/instances/*/console.logz nova-api.log*znova-compute.log*znova-conductor.log*znova-metadata-api.log*znova-manage.log*znova-placement-api.log*znova-scheduler.log*z */nova*.logz*/placement*.log_libvirt _metadata _placementz/etc/my.cnf.d/tripleo.cnfz/etc/httpd/conf/z/etc/httpd/conf.d/z /etc/httpd/conf.modules.d/*.confZauthorized_keysz%/../memcached/etc/sysconfig/memcachedz/var/spool/cron/novaz_libvirt/etc/libvirt/z_libvirt/etc/nova/migration/z!_libvirt/var/lib/nova/.ssh/configz^((?!libvirt.+httpd).)*$cs(g|] }D]}j||q qSr )var_puppet_gen)rrs)selfsyspathsr rrs)rr)rr)Zcontainer_existsZis_service_running service_namerZadd_cmd_outputallanyZsoslogZwarningZcollect_cmd_output splitlinessplit get_option add_copy_spec apachepkgZ path_joinlistfilterrecompilematch)r!Z in_containerZ nova_configZvars_allZvars_anyresZnova_instancesinstancecmdZnovadirZnovalogsZnovalogZnpathsZspecsr )r!r"rsetup"s                       zOpenStackNova.setupcCsTxN|jD]D}|j|d||x*dD]"}|j|j||d||q&WqWdS)z0 Apply regex substitution to all sensitive dirs z/*r rrrN)r rrr) postproc_dirsZdo_path_regex_subr)r!ZregexpZsubstZ_dirZnpathr r rapply_regex_subs   zOpenStackNova.apply_regex_subcCsTdddddg}dddg}d j|}|jd d j|d d |jd |d ddS)Nz.*_keyz.*_pass(wd|word)?ZpasswordZmetadata_proxy_shared_secretZrbd_secret_uuidZ connectionZsql_connectionZ transport_url|z(^\s*(z )\s*=\s*)(.*)z \1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z \1*********\6)joinr6)r!Z protect_keysZconnection_keysZ join_con_keysr r rpostprocs   zOpenStackNova.postproc)rrr r )r )__name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZ containersrr$r+r5r4r6r9r r r rrsn rcs,eZdZdZdZdZdZfddZZS) DebianNovaZapache2F nova-api-ec2nova-api-metadatanova-api-os-computenova-api-os-volume nova-common nova-computenova-compute-kvmnova-compute-lxcnova-compute-qemunova-compute-umlnova-compute-xcpnova-compute-xennova-xcp-pluginsnova-consoleauth nova-networknova-scheduler nova-volumenovnc python-nova python-novnc python3-novaznova-api.servicecstj|jddgdS)Nz/etc/sudoers.d/nova_sudoersz,/usr/share/polkit-1/rules.d/60-libvirt.rules)superr4r*)r!) __class__r rr4s zDebianNova.setup)r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrR) r:r;r<r+novapackagesr$r4 __classcell__r r )rTrr=s2r=cs0eZdZdZdZdZddgZfddZZS) RedHatNovaZhttpdFopenstack-selinuxz /etc/nova/z/var/lib/openstack/config/novacsZtj|jdddddddg|jdr<|jd d gn|jd d g|jd gdS)Nz/etc/logrotate.d/openstack-novaz4/etc/polkit-1/localauthority/50-local.d/50-nova.pklaz/etc/sudoers.d/novaz#/etc/security/limits.d/91-nova.confz(/etc/sysconfig/openstack-nova-novncproxyz/var/lib/openstack/config/novaz(/var/lib/openstack/containers/nova*.jsonrz/var/log/httpd/placement*z/var/log/containers/nova/*z/var/log/httpd/placement*.logz/var/log/containers/nova/*.logz-/var/lib/openstack/config/nova/ssh-privatekey)rSr4r*r)Zadd_forbidden_path)r!)rTr rr4s$   zRedHatNova.setup)rY) r:r;r<r+rUrVr5r4rWr r )rTrrXs rX) rr.Zsos.report.pluginsrrrrrr=rXr r r rs %