
    -_g #                     t    d dl Z d dlZd dlmZmZmZmZ  G d de      Z G d deee      Z G d dee      Z	y)	    N)PluginRedHatPluginDebianPluginUbuntuPluginc                   :    e Zd ZdZdZdZdZdZdZdZ	d Z
d	 Zd
 Zy)OpenStackNovazOpenStack Novaopenstack_nova)	openstackopenstack_controlleropenstack_computeopenstack_edpm)
.*nova_apiz*/var/lib/config-data/puppet-generated/novazopenstack-nova-api.serviceNc                    | j                  d      }| j                  | j                        s|rd}|rd| j                  z   dz   }| j	                  d|z   dz   d       | j	                  d|z   d	z   d
       | j	                  d|z   dz   d       | j	                  d|z   dz   d       dD cg c]  }|t
        j                  v  }}dD cg c]  }|t
        j                  v  }}t        |      rt        |      s| j                  j                  d       n| j	                  d       | j	                  d       | j	                  d       | j	                  d       | j	                  d       | j	                  d       | j	                  d       | j                  d      }|d   dk(  rF|d   }|j                         dd D ]+  }|j                         d    }d!| }	| j	                  |	       - | j                  d"      r#| j                  d#d$| j                    d%d&g       n]d#}
g d'}|D ]#  }| j                  | j#                  |
|             % | j                  d$| j                    d(d$| j                    d)g       g d*}g d+}dd,| j                  d-z   | j                  d.z   | j                  d/z   | j                  d0z   | j                  d1z   gt%        t'        t)        j*                  d2      j,                  |D cg c]  }|D ]  }| j                   | |   c}}            z   }| j                  |       y c c}w c c}w c c}}w )3Nr    z--config-dir 
/etc/nova/znova-manage z db versionznova-manage_db_version)suggest_filenamez fixed listznova-manage_fixed_listz floating listznova-manage_floating_listznova-status z upgrade checkznova-status_upgrade_check)OS_USERNAMEOS_PASSWORD)OS_TENANT_NAMEOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.zopenstack compute service listzopenstack flavor list --longzopenstack compute agent listznova version-listzopenstack hypervisor listzopenstack quota showzopenstack hypervisor stats showz$openstack server list --all-projectsstatusr   output      zopenstack server show all_logsz/var/log/nova/z	/var/log/z*/nova*z%/var/lib/nova/instances/*/console.log)znova-api.log*znova-compute.log*znova-conductor.log*znova-metadata-api.log*znova-manage.log*znova-placement-api.log*znova-scheduler.log*z*/nova*.logz*/placement*.logr   _libvirt	_metadata
_placement)r   z/etc/my.cnf.d/tripleo.cnfz/etc/httpd/conf/z/etc/httpd/conf.d/z /etc/httpd/conf.modules.d/*.confauthorized_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).)*$)container_existsis_service_runningservice_namevar_puppet_genadd_cmd_outputosenvironallanysoslogwarningcollect_cmd_output
splitlinessplit
get_optionadd_copy_spec	apachepkg	path_joinlistfilterrecompilematch)selfin_containernova_configpvars_allvars_anyresnova_instancesinstancecmdnovadirnovalogsnovalognpathssyspathssspecss                    C/usr/lib/python3/dist-packages/sos/report/plugins/openstack_nova.pysetupzOpenStackNova.setup!   s    ,,\:""4#4#45K-0C0CC ,- ,}<!9    ,}<!9    ,/??!<    ,/??!<   
26 7ARZZ 7H 72= >ARZZ >H > Mc(m## %3 4
 ##$DE##$BC##$BC##$78##$?@##$:;##$EF--:
 x=A%%(]N$2$=$=$?"$E 1#+>>#3A#6 6xjA++C01
 ??:& DNN+737   'GH $ E""4>>'7#CDEDNN+;7DNN++;<  
 =
 "II"88"99"@@"EE
 2::89??#X() **+A3qc2 2  	5!]7>Ps   .L?M? M	c                 |    | j                  d||       dD ]$  }| j                  | j                   | d||       & y)z Apply regex substitution z/etc/nova/*r   N)do_path_regex_subr%   )r9   regexpsubstnpaths       rJ   apply_regex_subzOpenStackNova.apply_regex_sub   sK    }fe<@ 	E""&&'wk:	    c                     g d}ddg}dj                  |      }| j                  ddj                  |       dd       | j                  d| dd	       y )
N)ldap_dns_passwordneutron_admin_passwordrabbit_passwordqpid_passwordpowervm_mgr_passwdvirtual_power_host_passxenapi_connection_passwordpasswordhost_passwordvnc_passwordadmin_passwordconnection_passwordmemcache_secret_keys3_secret_keymetadata_proxy_shared_secret	fixed_keytransport_urlrbd_secret_uuid
connectionsql_connection|z(^\s*(z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)joinrQ   )r9   protect_keysconnection_keysjoin_con_keyss       rJ   postproczOpenStackNova.postproc   sk    
 ()9:1chh|,-];	
 	m_$EF	
rR   )__name__
__module____qualname__
short_descplugin_nameprofiles
containersr%   r$   r2   rK   rQ   rm    rR   rJ   r   r      s8    !J"K7H JAN/LIl"\
rR   r   c                   .     e Zd ZdZdZdZdZ fdZ xZS )
DebianNovaapache2F)znova-api-ec2znova-api-metadataznova-api-os-computeznova-api-os-volumeznova-commonznova-computeznova-compute-kvmznova-compute-lxcznova-compute-qemuznova-compute-umlznova-compute-xcpznova-compute-xenznova-xcp-pluginsznova-consoleauthznova-networkznova-schedulerznova-volumenovnczpython-novazpython-novnczpython3-novaznova-api.servicec                 H    t         |           | j                  ddg       y )Nz/etc/sudoers.d/nova_sudoersz,/usr/share/polkit-1/rules.d/60-libvirt.rules)superrK   r1   r9   	__class__s    rJ   rK   zDebianNova.setup   s%    ):
 	rR   )	rn   ro   rp   r2   novapackagesr$   rK   __classcell__r}   s   @rJ   rw   rw      s%    IDH. &L rR   rw   c                   *     e Zd ZdZdZdZ fdZ xZS )
RedHatNovahttpdF)zopenstack-selinuxc                     t         |           | j                  g d       | j                  d      r| j                  ddg       n| j                  ddg       | j	                  dg       y )N)z/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*.jsonr   z/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)r{   rK   r1   r0   add_forbidden_pathr|   s    rJ   rK   zRedHatNova.setup   sy     
 	 ??:&+,  
 /0  
 	;!
 	rR   )rn   ro   rp   r2   r~   r   rK   r   r   s   @rJ   r   r      s    ID%H rR   r   )
r'   r6   sos.report.pluginsr   r   r   r   r   rw   r   ru   rR   rJ   <module>r      sA     
 	 O OW
F W
t"l "J rR   