
    ([Qh"                     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      Z G d deee      Z	y)	    N)PluginRedHatPluginDebianPluginUbuntuPluginc                   :    e Zd ZdZdZdZdZdedz   fZdZd Z	d	 Z
y
)MongoDbzMongoDB document databasemongodb)servicesz-/var/lib/config-data/puppet-generated/mongodb/etc/mongodb.confz/etc/mongod.confz/var/lib/mongodbc                     | j                  d| j                  dz   | j                  dz   ddg       | j                  d| j                   d       y )Nr   z/etc/z%/etc/systemd/system/mongod.service.d/z/var/log/mongodb/mongodb.logz/var/lib/mongodb/mongodb.log*zdu -sh /)add_copy_specvar_puppet_genadd_cmd_output	db_folder)selfs    </usr/lib/python3/dist-packages/sos/report/plugins/mongodb.pysetupzMongoDb.setup    sY    ')"II*+
 	 	gdnn%5Q78    c                 V    d| j                   dz   fD ]  }| j                  |dd        y )Nr   z(mms-token)\s*=\s*(.*)z\1 = ********)r   do_file_sub)r   files     r   postproczMongoDb.postproc*   s=    (((+>>@ 	D) 	r   N)__name__
__module____qualname__
short_descplugin_nameprofilesr   filesr   r   r    r   r   r   r      s<    ,JKHDN 	++E
 #I9r   r   c                   "     e Zd ZdZ fdZ xZS )RedHatMongoDb)mongodb-serverzrh-mongodb32-mongodb-serverzrh-mongodb34-mongodb-serverzrh-mongodb36-mongodb-serverc                 H    t         |           | j                  g d       y )N)z/etc/sysconfig/mongodbz/etc/rh-mongodb*-mongo*.confz#/etc/opt/rh/rh-mongodb*/mongo*.confz./var/opt/rh/rh-mongodb*/log/mongodb/mongod.log)superr   r   )r   	__class__s    r   r   zRedHatMongoDb.setup=   s     
 	r   )r   r   r   packagesr   __classcell__r'   s   @r   r#   r#   4   s    H r   r#   c                   0     e Zd ZdZdZdZ fdZd Z xZS )UbuntuMongodb)r$   zmongodb-server-corejuju-db)/var/lib/juju/db/var/snap/juju-db/current/db)r-   r	   c                    | j                  d      x}rd| _        n| j                  d      x}rd| _        t        |           |rx| j	                  d      D ]c  }t        j                  d|      s|}t        d| ddd	
      5 }t        j                  |      }|d   }| j                  ||       d d d         y  y y # 1 sw Y    y xY w)Nr.   z/var/snap/juju-db/curent/dbr/   z/var/lib/juju/agentsz	machine-*z/var/lib/juju/agents/z/agent.confrzUTF-8)encodingstatepassword)path_existsr   r&   r   listdirresearchopenyaml	safe_load_capture_db_data)r   get_juju_infothe_dirusernamefdatapasswordr'   s          r   r   zUbuntuMongodb.setupY   s     ,,-?@@=@/DN"../LMM]M;DN<<(>? 	99['2&H 5hZ{K!G5 B89#~~a0#'#8--hAB 	 B s   -C  C
	c           
          | j                  d      rd}n| j                  d      rd}nd}g d}|D ]!  }| j                  | d| d| d| |d	       # y )
Nz/usr/bin/mongoz/usr/lib/juju/mongo*/bin/mongoz/snap/bin/juju-db.mongo)	zdb.hostInfo()zdb.getCollectionInfos()zdb.getCollectionNames()zdb.getProfilingStatus()zdb.replicationInfo()zdb.serverStatus()z
db.stats()z	rs.conf()zrs.status()zd 127.0.0.1:37017/juju --authenticationDatabase admin --ssl --sslAllowInvalidCertificates --username z --password z --eval db_commands)suggest_filenamesubdir)r4   r   )r   r>   rA   clientcmds_to_checkcmds         r   r;   zUbuntuMongodb._capture_db_datam   s    ,-%F>?5F.F

 ! 	C( CCK*xj7 "%]	   	r   )	r   r   r   r(   r    r
   r   r;   r)   r*   s   @r   r,   r,   G   s"    HE
H
(r   r,   )
r6   r9   sos.report.pluginsr   r   r   r   r   r#   r,   r!   r   r   <module>rJ      s@    
  O O!f !HG\ &@G\< @r   