def lbmonitor_exists(client, module): log('Checking if monitor exists') if lbmonitor.count_filtered( client, 'monitorname:%s' % module.params['monitorname']) > 0: return True else: return False
def lbmonitor_identical(client, module, lbmonitor_proxy): log('Checking if monitor is identical') count = lbmonitor.count_filtered( client, 'monitorname:%s' % module.params['monitorname']) if count == 0: return False lbmonitor_list = lbmonitor.get_filtered( client, 'monitorname:%s' % module.params['monitorname']) diff_dict = lbmonitor_proxy.diff_object(lbmonitor_list[0]) # Skipping hashed fields since the cannot be compared directly hashed_fields = [ 'password', 'secondarypassword', 'radkey', ] for key in hashed_fields: if key in diff_dict: del diff_dict[key] if diff_dict == {}: return True else: return False
def lbmonitor_identical(): log('Entering lbmonitor_identical') count = lbmonitor.count_filtered(client, 'monitorname:%s' % module.params['monitorname']) if count == 0: return False lbmonitor_list = lbmonitor.get_filtered(client, 'monitorname:%s' % module.params['monitorname']) diff_dict = lbmonitor_proxy.diff_object(lbmonitor_list[0]) # Skipping hashed fields since the cannot be compared directly # TODO emulate the hash function for effective equality comparison hashed_fields = [ 'password', 'secondarypassword', 'radkey', ] for key in hashed_fields: if key in diff_dict: del diff_dict[key] if diff_dict == {}: return True else: return False
def test_create_and_delete_entity(self): monitor_name = 'lb-monitor-1' playbook = [{ 'hosts': 'netscaler', 'gather_facts': False, 'tasks': [{ 'name': 'setup monitor', 'local_action': { 'operation': 'present', 'module': 'netscaler_lb_monitor', 'monitorname': monitor_name, 'type': 'HTTP-INLINE', 'action': 'DOWN', #'respcode': [ '"200"', '"203"'], #'httprequest': 'HEAD /file.html', }, }] }] from nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbmonitor import lbmonitor playbook[0]['tasks'][0]['local_action'].update(utils.nitro_dict) # Create entity result = utils.run_ansible_play(playbook, testcase='Create_lb_monitor_entity') self.assertIsNotNone(result, msg='Result from playbook run did not return valid json') self.assertFalse(result['failed'], msg='Playbook initial returned failed status') self.assertTrue(result['changed'], msg='Changed status was not set correctly') # Make sure the named entiry exists only once count = lbmonitor.count_filtered(utils.get_nitro_client(), 'monitorname:%s' % monitor_name) self.assertEqual(count,1, msg='%s was not deleted properly' % monitor_name) # Delete entity playbook[0]['tasks'][0]['local_action']['operation'] = 'absent' result = utils.run_ansible_play(playbook, testcase='Delete_lb_monitor_entity') self.assertIsNotNone(result, msg='Result from playbook run did not return valid json') self.assertFalse(result['failed'], msg='Playbook initial returned failed status') self.assertTrue(result['changed'], msg='Changed status was not set correctly') # Make sure the named entiry does not exist count = lbmonitor.count_filtered(utils.get_nitro_client(), 'monitorname:%s' % monitor_name) self.assertEqual(count,0, msg='%s was not deleted properly' % monitor_name)
def lbmonitor_identical(client, module, lbmonitor_proxy): log('Checking if monitor is identical') count = lbmonitor.count_filtered(client, 'monitorname:%s' % module.params['monitorname']) if count == 0: return False lbmonitor_list = lbmonitor.get_filtered(client, 'monitorname:%s' % module.params['monitorname']) diff_dict = lbmonitor_proxy.diff_object(lbmonitor_list[0]) # Skipping hashed fields since the cannot be compared directly hashed_fields = [ 'password', 'secondarypassword', 'radkey', ] for key in hashed_fields: if key in diff_dict: del diff_dict[key] if diff_dict == {}: return True else: return False
def lbmonitor_exists(client, module): log('Checking if monitor exists') if lbmonitor.count_filtered(client, 'monitorname:%s' % module.params['monitorname']) > 0: return True else: return False
def lbmonitor_exists(): log('Entering lbmonitor_exists') if lbmonitor.count_filtered(client, 'monitorname:%s' % module.params['monitorname']) > 0: return True else: return False