def main(): argument_spec = get_certificate_argument_spec() argument_spec.argument_spec['provider']['required'] = True add_entrust_provider_to_argument_spec(argument_spec) add_ownca_provider_to_argument_spec(argument_spec) add_selfsigned_provider_to_argument_spec(argument_spec) argument_spec.argument_spec.update(dict(content=dict(type='str'), )) module = argument_spec.create_ansible_module(supports_check_mode=True, ) try: provider = module.params['provider'] provider_map = { 'entrust': EntrustCertificateProvider, 'ownca': OwnCACertificateProvider, 'selfsigned': SelfSignedCertificateProvider, } backend = module.params['select_crypto_backend'] module_backend = select_backend(module, backend, provider_map[provider]()) certificate = GenericCertificate(module, module_backend) certificate.generate(module) result = certificate.dump() module.exit_json(**result) except OpenSSLObjectError as exc: module.fail_json(msg=to_native(exc))
def main(): argument_spec = get_certificate_argument_spec() add_acme_provider_to_argument_spec(argument_spec) add_assertonly_provider_to_argument_spec(argument_spec) add_entrust_provider_to_argument_spec(argument_spec) add_ownca_provider_to_argument_spec(argument_spec) add_selfsigned_provider_to_argument_spec(argument_spec) argument_spec.argument_spec.update(dict( state=dict(type='str', default='present', choices=['present', 'absent']), path=dict(type='path', required=True), backup=dict(type='bool', default=False), return_content=dict(type='bool', default=False), )) argument_spec.required_if.append(['state', 'present', ['provider']]) module = argument_spec.create_ansible_module( add_file_common_args=True, supports_check_mode=True, ) if module._name == 'community.crypto.openssl_certificate': module.deprecate("The 'community.crypto.openssl_certificate' module has been renamed to 'community.crypto.x509_certificate'", version='2.0.0', collection_name='community.crypto') try: if module.params['state'] == 'absent': certificate = CertificateAbsent(module) if module.check_mode: result = certificate.dump(check_mode=True) result['changed'] = os.path.exists(module.params['path']) module.exit_json(**result) certificate.remove(module) else: base_dir = os.path.dirname(module.params['path']) or '.' if not os.path.isdir(base_dir): module.fail_json( name=base_dir, msg='The directory %s does not exist or the file is not a directory' % base_dir ) provider = module.params['provider'] provider_map = { 'acme': AcmeCertificateProvider, 'assertonly': AssertOnlyCertificateProvider, 'entrust': EntrustCertificateProvider, 'ownca': OwnCACertificateProvider, 'selfsigned': SelfSignedCertificateProvider, } backend = module.params['select_crypto_backend'] module_backend = select_backend(module, backend, provider_map[provider]()) certificate = GenericCertificate(module, module_backend) certificate.generate(module) result = certificate.dump() module.exit_json(**result) except OpenSSLObjectError as exc: module.fail_json(msg=to_native(exc))