New module: manage Citrix Netscaler SSL certificate keys (network/netscaler/netscaler_ssl_certkey)) (#27641)

* Add netscaler_ssl_certkey

* Fix options

* Lowercase enabled, disabled option values

* Add fixes in netscaler module utils needed for unit test success
This commit is contained in:
George Nikolopoulos 2017-08-03 17:24:56 +03:00 committed by John R Barker
parent 7f8aaf97de
commit cd865be987
10 changed files with 1130 additions and 3 deletions

View file

@ -30,6 +30,7 @@
import json
import re
import sys
from ansible.module_utils.basic import env_fallback
from ansible.module_utils.six import binary_type, text_type
@ -57,12 +58,20 @@ class ConfigProxy(object):
self.attribute_values_processed = {}
for attribute, value in self.attribute_values_dict.items():
if value is None:
continue
if attribute in transforms:
for transform in self.transforms[attribute]:
if transform == 'bool_yes_no':
value = 'YES' if value is True else 'NO'
if value is True:
value = 'YES'
elif value is False:
value = 'NO'
elif transform == 'bool_on_off':
value = 'ON' if value is True else 'OFF'
if value is True:
value = 'ON'
elif value is False:
value = 'OFF'
elif callable(transform):
value = transform(value)
else:
@ -130,7 +139,7 @@ class ConfigProxy(object):
# Compare values
param_type = self.attribute_values_processed[attribute].__class__
if param_type(attribute_value) != self.attribute_values_processed[attribute]:
if attribute_value is None or param_type(attribute_value) != self.attribute_values_processed[attribute]:
str_tuple = (
type(self.attribute_values_processed[attribute]),
self.attribute_values_processed[attribute],
@ -180,6 +189,10 @@ def get_immutables_intersection(config_proxy, keys):
def ensure_feature_is_enabled(client, feature_str):
enabled_features = client.get_enabled_features()
if enabled_features is None:
enabled_features = []
if feature_str not in enabled_features:
client.enable_features(feature_str)
client.save_config()
@ -257,6 +270,12 @@ def get_ns_version(client):
return int(m.group(1)), int(m.group(2))
def get_ns_hardware(client):
from nssrc.com.citrix.netscaler.nitro.resource.config.ns.nshardware import nshardware
result = nshardware.get(client)
return result
def monkey_patch_nitro_api():
from nssrc.com.citrix.netscaler.nitro.resource.base.Json import Json