improve control.py
This commit is contained in:
		
							parent
							
								
									d15f3d5daa
								
							
						
					
					
						commit
						db95edf8f8
					
				
							
								
								
									
										14
									
								
								control.py
								
								
								
								
							
							
						
						
									
										14
									
								
								control.py
								
								
								
								
							|  | @ -73,7 +73,7 @@ class EjabberdCtl(EjabberdApi): | |||
|             return result | ||||
|         return result["s2s_outgoing"] | ||||
| 
 | ||||
|     def fetch_registered(self, vhost=None): | ||||
|     def fetch_registered_count(self, vhost=None): | ||||
|         if vhost is None: | ||||
|             result = self.cmd("stats", {"name":"registeredusers"}) | ||||
|             if "stat" in result: | ||||
|  | @ -82,3 +82,15 @@ class EjabberdCtl(EjabberdApi): | |||
|             result = self.cmd("stats_host", {"name":"registeredusers", "host": vhost}) | ||||
|             if "stat" in result: | ||||
|                 return result["stat"] | ||||
| 
 | ||||
|     def fetch_muc_count(self, vhost=None, muc_host="conference"): | ||||
|          host = "global" | ||||
|          if vhost is not None: | ||||
|              if self.verstring.major >= 19: | ||||
|                  host = '.'.join([muc_host, vhost]) | ||||
|              else: | ||||
|                  host = vhost | ||||
|          result = self.cmd("muc_online_rooms", {"host": host}) | ||||
|          if "rooms" in result: | ||||
|              return len(result["rooms"]) | ||||
|          return len(result) | ||||
|  |  | |||
							
								
								
									
										24
									
								
								metrics.py
								
								
								
								
							
							
						
						
									
										24
									
								
								metrics.py
								
								
								
								
							|  | @ -53,18 +53,6 @@ class EjabberdMetrics(EjabberdCtl): | |||
|                 return 4 | ||||
|         return addr.version | ||||
| 
 | ||||
|     def fetch_muc(self, vhost=None): | ||||
|         host = "global" | ||||
|         if vhost is not None: | ||||
|             if self.verstring.major >= 19: | ||||
|                 host = '.'.join([self.muc_host, vhost]) | ||||
|             else: | ||||
|                 host = vhost | ||||
|         result = self.cmd("muc_online_rooms", {"host": host}) | ||||
|         if "rooms" in result: | ||||
|             return len(result["rooms"]) | ||||
|         return len(result) | ||||
| 
 | ||||
|     def update(self): | ||||
|         # nodes | ||||
|         self._nodes = self.fetch_nodes() | ||||
|  | @ -75,17 +63,17 @@ class EjabberdMetrics(EjabberdCtl): | |||
|         # registered | ||||
|         if not hasattr(self, "_registered"): | ||||
|             self._registered = {} | ||||
|         self._registered[None] = self.fetch_registered() | ||||
|         self._registered[None] = self.fetch_registered_count() | ||||
| 
 | ||||
|         # muc | ||||
|         if not hasattr(self, "_muc"): | ||||
|             self._muc = {} | ||||
|         self._muc[None] = self.fetch_muc() | ||||
|         self._muc[None] = self.fetch_muc_count() | ||||
| 
 | ||||
|         # registered + muc | ||||
|         for vhost in self._vhosts: | ||||
|             self._registered[vhost] = self.fetch_registered(vhost) | ||||
|             self._muc[vhost] = self.fetch_muc(vhost) | ||||
|             self._registered[vhost] = self.fetch_registered_count(vhost) | ||||
|             self._muc[vhost] = self.fetch_muc_count(vhost) | ||||
| 
 | ||||
|         # online user | ||||
|         self._onlineuser = self.fetch_onlineuser() | ||||
|  | @ -164,14 +152,14 @@ class EjabberdMetrics(EjabberdCtl): | |||
|         if not hasattr(self, "_registered"): | ||||
|             self._registered = {} | ||||
|         if vhost not in self._registered: | ||||
|             self._registered[vhost] = self.fetch_registered(vhost) | ||||
|             self._registered[vhost] = self.fetch_registered_count(vhost) | ||||
|         return self._registered[vhost] | ||||
| 
 | ||||
|     def get_muc(self, vhost=None): | ||||
|         if not hasattr(self, "_muc"): | ||||
|             self._muc = {} | ||||
|         if vhost not in self._muc: | ||||
|             self._muc[vhost] = self.fetch_muc(vhost) | ||||
|             self._muc[vhost] = self.fetch_muc_count(vhost) | ||||
|         return self._muc[vhost] | ||||
| 
 | ||||
|     def get_vhosts(self): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue