121 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| #
 | |
| # GUI configuration pages to set up inventorying and checks done by the CUCM
 | |
| # agent to CUCM. These two pages are for giving the agent the necessary details
 | |
| # to connect to CUCM (e.g. IP address, user, login, etc).
 | |
| #
 | |
| # Ideally, we'd have a single page to configure both the inventorying and
 | |
| # checks, since both contact the same CUCM instance. Unfortunately, I didn't
 | |
| # find a clean way to do it, so we're left with two identical GUI pages that
 | |
| # take identical information. At least we manage to share most of the code
 | |
| # here by taking a deep copy and modifying the title.
 | |
| 
 | |
| import copy
 | |
| from cmk.gui.i18n import _
 | |
| from cmk.gui.plugins.wato.utils import (
 | |
|     rulespec_registry,
 | |
|     HostRulespec,
 | |
|     RulespecGroupCheckParametersHardware
 | |
| )
 | |
| from cmk.gui.plugins.wato.inventory import RulespecGroupInventory
 | |
| from cmk.gui.watolib.rulespecs import Rulespec
 | |
| from cmk.gui.valuespec import (
 | |
|     Dictionary,
 | |
|     TextInput,
 | |
|     Hostname,
 | |
|     NetworkPort,
 | |
|     Password,
 | |
|     TextAscii,
 | |
|     FixedValue
 | |
| )
 | |
| 
 | |
| 
 | |
| # GUI config page for inventory.
 | |
| def _valuespec_special_agents_cucm_inv():
 | |
|     return Dictionary(
 | |
|         title=_("CUCM inventory"),
 | |
|         help=_(""),
 | |
|         optional_keys=["port", "user", "password", "insecure"],
 | |
|         elements=[
 | |
|             (
 | |
|                 "instance",
 | |
|                 Hostname(
 | |
|                     title=_("Hostname"),
 | |
|                     help=_(
 | |
|                         "Host of CUCM host for query"
 | |
|                     ),
 | |
|                     allow_empty=False,
 | |
|                 ),
 | |
|             ),
 | |
|             (
 | |
|                 "port",
 | |
|                 NetworkPort(
 | |
|                     title=_("Port"),
 | |
|                     help=_(
 | |
|                         "Port of CUCM host for query"
 | |
|                     ),
 | |
|                     minvalue=1,
 | |
|                     default_value=443,
 | |
|                 ),
 | |
|             ),
 | |
|             (
 | |
|                 "user",
 | |
|                 TextInput(
 | |
|                     title=_("Username"),
 | |
|                     help=_(
 | |
|                         "Username used when querying CUCM"
 | |
|                     ),
 | |
|                 ),
 | |
|             ),
 | |
|             (
 | |
|                 "password",
 | |
|                 Password(
 | |
|                     title=_("Password"),
 | |
|                     help=_(
 | |
|                         "Password used when querying CUCM"
 | |
|                     ),
 | |
|                 ),
 | |
|             ),
 | |
|             (
 | |
|                 "insecure",
 | |
|                 FixedValue(
 | |
|                     True,
 | |
|                     title=_("Insecure"),
 | |
|                     totext=_("Disable SSL certificate verification"),
 | |
|                     help=_(
 | |
|                         "Ignore unverified HTTPS request warnings when contacting CUCM"
 | |
|                     ),
 | |
|                 ),
 | |
|             ),
 | |
|         ],
 | |
|     )
 | |
| 
 | |
| 
 | |
| # GUI config page for checks. We do a deep copy of the above function and just
 | |
| # change the title. A bit hackish since we're changing a private attribute.
 | |
| def _valuespec_special_agents_cucm_chk():
 | |
|    inv_spec = _valuespec_special_agents_cucm_inv()
 | |
|    chk_spec = copy.deepcopy(inv_spec)
 | |
|    chk_spec._title=_("CUCM checks")
 | |
|    return chk_spec
 | |
| 
 | |
| 
 | |
| rulespec_registry.register(
 | |
|     HostRulespec(
 | |
|         factory_default=Rulespec.FACTORY_DEFAULT_UNUSED,
 | |
|         name="special_agents:cucm_inv",
 | |
|         group=RulespecGroupInventory,
 | |
|         valuespec=_valuespec_special_agents_cucm_inv,
 | |
|     )
 | |
| )
 | |
| 
 | |
| 
 | |
| rulespec_registry.register(
 | |
|     HostRulespec(
 | |
|         factory_default=Rulespec.FACTORY_DEFAULT_UNUSED,
 | |
|         name="special_agents:cucm_chk",
 | |
|         group=RulespecGroupCheckParametersHardware,
 | |
|         valuespec=_valuespec_special_agents_cucm_chk,
 | |
|     )
 | |
| )
 |