コード例 #1
0
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
コード例 #2
0
    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)
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
    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')