if zabbixserver:
# TODO: verify that this works. it has failed once on fresh
# install... not sure why.
- print "Removing default Zabbix server entry"
- zabbixserver.delete()
+# print "Removing default Zabbix server entry"
+# zabbixserver.delete()
+ zabbixserver.host="unused default server"
# NOTE: creating a host and assigning a template cannot work
# due to the crazy item, trigger, action
def setup_site(loginbase, techemail, piemail, iplist):
- # TODO: send a message when host is discovered.
-
- # TODO: update 'discovered' hosts with dns name.
# TODO: remove old nodes that are no longer in the plcdb.
# TODO: remove old users that are no longer in the plcdb.
# TODO: consider creating two user groups for Tech & PI emails
raise Exception("iplist length is too long!")
BI_WEEKLY_ESC_PERIOD = int(60*60*24)
- #BI_WEEKLY_ESC_PERIOD = int(60) # testing...
+ DISCOVERY_DELAY = 3600
+ BI_WEEKLY_ESC_PERIOD = int(300)
+ DISCOVERY_DELAY = 240 # testing
# User Group
site_user_group = UsrGrp.find_or_create(name=USERGROUP_NAME % loginbase)
- for user in set(techemail + piemail + [config.cc_email]):
+ #for user in set(techemail + piemail + [config.cc_email]):
+ for user in set([config.cc_email]):
if not user: continue
# USER
u = User.find_or_create(alias=user, type=1,
# HOST GROUP
plc_host_group = HostGroup.find_or_create(name="MyPLC Hosts")
+ print "myplc groupid: ", plc_host_group.groupid
site_host_group = HostGroup.find_or_create(name=HOSTGROUP_NAME % loginbase)
+ print "site groupid: ", site_host_group.groupid
plctemplate = Host.get_by(host="Template_Linux_PLC_Host")
escalation_action_name = ESCALATION_ACTION_NAME % loginbase
discovery_action_name = DISCOVERY_ACTION_NAME % loginbase
# DISCOVERY RULE & CHECK
dr = DiscoveryRule.find_or_create(name=discovery_rule_name,
- delay=3600,
+ delay=DISCOVERY_DELAY,
proxy_hostid=0,
set_if_new = {'iprange':iplist},
exec_if_new=lambda obj: \
]
# THEN
a.actionoperation_list=[
+ # Send Email
+ ActionOperation(
+ operationtype=defines.OPERATION_TYPE_MESSAGE,
+ shortdata=mailtxt.node_discovered_subject,
+ longdata=mailtxt.node_discovered,
+ object=defines.OPERATION_OBJECT_GROUP,
+ objectid=site_user_group.usrgrpid,
+ esc_period=0, esc_step_to=1, esc_step_from=1,
+ ),
# Add Host
ActionOperation(
operationtype=defines.OPERATION_TYPE_HOST_ADD,
operationtype=defines.OPERATION_TYPE_GROUP_ADD,
object=0, objectid=site_host_group.groupid,
esc_period=0, esc_step_from=1, esc_step_to=1),
- # Link to Template 'Template_Linux_Minimal'
+ # Link to Template 'Template_Linux_PLC_Host'
ActionOperation(
operationtype=defines.OPERATION_TYPE_TEMPLATE_ADD,
object=0, objectid=plctemplate.hostid,
else:
# TODO: verify iplist is up-to-date
# NOTE: len(a.actioncondition_list) > 0
- ip_condition = a.actioncondition_list[0]
+ #ip_condition = a.actioncondition_list[0]
+ ip_condition = filter(lambda x: x.conditiontype == defines.CONDITION_TYPE_DHOST_IP, a.actioncondition_list)[0]
+ print ip_condition.conditiontype
+ print defines.CONDITION_TYPE_DHOST_IP
assert ip_condition.conditiontype == defines.CONDITION_TYPE_DHOST_IP
if ip_condition.value != iplist:
ip_condition.value = iplist
objectid=site_user_group.usrgrpid,
esc_period=0, esc_step_to=3, esc_step_from=3,
operationcondition_list=[ OperationConditionNotAck() ] ),
- ActionOperation(operationtype=defines.OPERATION_TYPE_MESSAGE,
- shortdata=mailtxt.nodedown_one_subject,
- longdata=mailtxt.nodedown_one,
- object=defines.OPERATION_OBJECT_GROUP,
- objectid=site_user_group.usrgrpid,
- esc_period=0, esc_step_to=7, esc_step_from=7,
- operationcondition_list=[ OperationConditionNotAck() ] ),
+ #ActionOperation(operationtype=defines.OPERATION_TYPE_MESSAGE,
+ # shortdata=mailtxt.nodedown_one_subject,
+ # longdata=mailtxt.nodedown_one,
+ # object=defines.OPERATION_OBJECT_GROUP,
+ # objectid=site_user_group.usrgrpid,
+ # esc_period=0, esc_step_to=7, esc_step_from=7,
+ # operationcondition_list=[ OperationConditionNotAck() ] ),
# STAGE 2
ActionOperation(operationtype=defines.OPERATION_TYPE_COMMAND,
esc_step_from=10, esc_step_to=10,
object=defines.OPERATION_OBJECT_GROUP,
objectid=site_user_group.usrgrpid,
operationcondition_list=[ OperationConditionNotAck() ] ),
- ActionOperation(operationtype=defines.OPERATION_TYPE_MESSAGE,
- shortdata=mailtxt.nodedown_two_subject,
- longdata=mailtxt.nodedown_two,
- esc_step_from=14, esc_step_to=14,
- esc_period=0,
- object=defines.OPERATION_OBJECT_GROUP,
- objectid=site_user_group.usrgrpid,
- operationcondition_list=[ OperationConditionNotAck() ] ),
+ #ActionOperation(operationtype=defines.OPERATION_TYPE_MESSAGE,
+ # shortdata=mailtxt.nodedown_two_subject,
+ # longdata=mailtxt.nodedown_two,
+ # esc_step_from=14, esc_step_to=14,
+ # esc_period=0,
+ # object=defines.OPERATION_OBJECT_GROUP,
+ # objectid=site_user_group.usrgrpid,
+ # operationcondition_list=[ OperationConditionNotAck() ] ),
# STAGE 3
ActionOperation(operationtype=defines.OPERATION_TYPE_COMMAND,