def GetVsrvrCertkeyBindings(sess,vsrvrname,servercertlist,snicertlist,cacertlist) : ret = 0 try : ll = VsrvrCKeyBdg.get(sess,vsrvrname) for l in ll : if l.ca : if len(l.certkeyname) > 0 : cacertlist.append(l.certkeyname) elif l.snicert : if len(l.certkeyname) > 0 : snicertlist.append(l.certkeyname) elif l.certkeyname : if len(l.certkeyname) > 0 : servercertlist.append(l.certkeyname) except NITROEXCEPTION.nitro_exception as e : print 'Nitro exception:::: {0}'.format(e.message) ret = e.errorcode return ret
def ssl_certkey_bindings_sync(): vservername = module.params['name'] if sslvserver_sslcertkey_binding.count(client, vservername) == 0: bindings = [] else: bindings = sslvserver_sslcertkey_binding.get(client, vservername) log('bindings len is %s' % len(bindings)) # Delete existing bindings for binding in bindings: sslvserver_sslcertkey_binding.delete(client, binding) # Add binding if appropriate if module.params['ssl_certkey'] is not None: binding = sslvserver_sslcertkey_binding() binding.vservername = module.params['name'] binding.certkeyname = module.params['ssl_certkey'] sslvserver_sslcertkey_binding.add(client, binding)
def ssl_certkey_bindings_identical(client, module): log('Checking if ssl cert key bindings are identical') vservername = module.params['name'] if sslvserver_sslcertkey_binding.count(client, vservername) == 0: bindings = [] else: bindings = sslvserver_sslcertkey_binding.get(client, vservername) if module.params['ssl_certkey'] is None: if len(bindings) == 0: return True else: return False else: certificate_list = [item.certkeyname for item in bindings] if certificate_list == [module.params['ssl_certkey']]: return True else: return False
def ssl_certkey_bindings_sync(client, module): log('Syncing certkey bindings') vservername = module.params['name'] if sslvserver_sslcertkey_binding.count(client, vservername) == 0: bindings = [] else: bindings = sslvserver_sslcertkey_binding.get(client, vservername) # Delete existing bindings for binding in bindings: log('Deleting existing binding for certkey %s' % binding.certkeyname) sslvserver_sslcertkey_binding.delete(client, binding) # Add binding if appropriate if module.params['ssl_certkey'] is not None: log('Adding binding for certkey %s' % module.params['ssl_certkey']) binding = sslvserver_sslcertkey_binding() binding.vservername = module.params['name'] binding.certkeyname = module.params['ssl_certkey'] sslvserver_sslcertkey_binding.add(client, binding)
def test_certificate(self): vserver_name = 'cs-vserver-1' playbook = [{ 'hosts': 'netscaler', 'gather_facts': False, 'tasks': [{ 'name': 'setup cs vserver', 'local_action': { 'operation': 'present', 'module': 'netscaler_cs_vserver', 'name': vserver_name, 'servicetype': 'SSL', 'ipv46': '192.168.1.1', 'port': 80, 'ssl_certkey': self.certkeyname }, }] }] playbook[0]['tasks'][0]['local_action'].update(utils.nitro_dict) from nssrc.com.citrix.netscaler.nitro.resource.config.ssl.sslvserver_sslcertkey_binding import sslvserver_sslcertkey_binding client = utils.get_nitro_client() # Create entity result = utils.run_ansible_play( playbook, testcase='Create_cs_vserver_with_ssl_certificate') 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 bindings are ok bindings = sslvserver_sslcertkey_binding.get(client, vserver_name) self.assertListEqual([item.certkeyname for item in bindings], [self.certkeyname], msg='ssl cert bindings differ') # Second run result = utils.run_ansible_play( playbook, testcase='Create_cs_vserver_with_ssl_certificate_second_run') self.assertIsNotNone( result, msg='Result from playbook run did not return valid json') self.assertFalse(result['failed'], msg='Playbook initial returned failed status') self.assertFalse(result['changed'], msg='Changed status was not set correctly') # Make sure the bindings are ok bindings = sslvserver_sslcertkey_binding.get(client, vserver_name) self.assertListEqual([item.certkeyname for item in bindings], [self.certkeyname], msg='ssl cert bindings differ') # Delete entity del playbook[0]['tasks'][0]['local_action']['ssl_certkey'] result = utils.run_ansible_play( playbook, testcase='Delete_cs_vserver_ssl_cert_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 no bindings exist count = sslvserver_sslcertkey_binding.count(client, vserver_name) self.assertEqual(count, 0, msg='ssl certkey bindings did not get deleted') # Delete second run result = utils.run_ansible_play( playbook, testcase='Delete_cs_vserver_ssl_cert_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.assertFalse(result['changed'], msg='Changed status was not set correctly') # Make sure no bindings exist count = sslvserver_sslcertkey_binding.count(client, vserver_name) self.assertEqual(count, 0, msg='ssl certkey bindings did not get deleted')