Browse Source

Merge pull request #919 from kwoodson/datatype

Adding data_type to zbx_items
Kenny Woodson 9 years ago
parent
commit
4729ff5277

+ 20 - 0
roles/lib_zabbix/library/zbx_item.py

@@ -41,6 +41,24 @@ def exists(content, key='result'):
 
     return True
 
+def get_data_type(data_type):
+    '''
+    Possible values:
+    0 - decimal;
+    1 - octal;
+    2 - hexadecimal;
+    3 - bool;
+    '''
+    vtype = 0
+    if 'octal' in data_type:
+        vtype = 1
+    elif 'hexadecimal' in data_type:
+        vtype = 2
+    elif 'bool' in data_type:
+        vtype = 3
+
+    return vtype
+
 def get_value_type(value_type):
     '''
     Possible values:
@@ -158,6 +176,7 @@ def main():
             template_name=dict(default=None, type='str'),
             zabbix_type=dict(default='trapper', type='str'),
             value_type=dict(default='int', type='str'),
+            data_type=dict(default='decimal', type='str'),
             interval=dict(default=60, type='int'),
             delta=dict(default=0, type='int'),
             multiplier=dict(default=None, type='str'),
@@ -219,6 +238,7 @@ def main():
                   'hostid': templateid[0],
                   'type': get_zabbix_type(module.params['zabbix_type']),
                   'value_type': get_value_type(module.params['value_type']),
+                  'data_type': get_data_type(module.params['data_type']),
                   'applications': get_app_ids(module.params['applications'], app_name_ids),
                   'formula': formula,
                   'multiplier': use_multiplier,

+ 20 - 0
roles/lib_zabbix/library/zbx_itemprototype.py

@@ -116,6 +116,24 @@ def get_zabbix_type(ztype):
 
     return _vtype
 
+def get_data_type(data_type):
+    '''
+    Possible values:
+    0 - decimal;
+    1 - octal;
+    2 - hexadecimal;
+    3 - bool;
+    '''
+    vtype = 0
+    if 'octal' in data_type:
+        vtype = 1
+    elif 'hexadecimal' in data_type:
+        vtype = 2
+    elif 'bool' in data_type:
+        vtype = 3
+
+    return vtype
+
 def get_value_type(value_type):
     '''
     Possible values:
@@ -175,6 +193,7 @@ def main():
             interfaceid=dict(default=None, type='int'),
             zabbix_type=dict(default='trapper', type='str'),
             value_type=dict(default='float', type='str'),
+            data_type=dict(default='decimal', type='str'),
             delay=dict(default=60, type='int'),
             lifetime=dict(default=30, type='int'),
             state=dict(default='present', type='str'),
@@ -238,6 +257,7 @@ def main():
                   'ruleid': get_rule_id(zapi, module.params['discoveryrule_key'], template['templateid']),
                   'type': get_zabbix_type(module.params['zabbix_type']),
                   'value_type': get_value_type(module.params['value_type']),
+                  'data_type': get_data_type(module.params['data_type']),
                   'applications': get_app_ids(zapi, module.params['applications'], template['templateid']),
                   'formula': formula,
                   'multiplier': use_multiplier,

+ 2 - 0
roles/lib_zabbix/tasks/create_template.yml

@@ -33,6 +33,7 @@
     key: "{{ item.key }}"
     name: "{{ item.name | default(item.key, true) }}"
     value_type: "{{ item.value_type | default('int') }}"
+    data_type: "{{ item.data_type | default('decimal') }}"
     description: "{{ item.description | default('', True) }}"
     multiplier: "{{ item.multiplier | default('', True) }}"
     units: "{{ item.units | default('', True) }}"
@@ -81,6 +82,7 @@
     key: "{{ item.key }}"
     discoveryrule_key: "{{ item.discoveryrule_key }}"
     value_type: "{{ item.value_type }}"
+    data_type: "{{ item.data_type | default('decimal') }}"
     template_name: "{{ template.name }}"
     applications: "{{ item.applications }}"
     description: "{{ item.description | default('', True) }}"