Skip to content

jenkins_credentials credentials_list crashes when there is a not supported credential already created #932

Open
@fcgravalos

Description

@fcgravalos

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 5.5.14
  • Ruby: 2.4.5
  • Distribution: Debian 9 - Stretch
  • Module version: 2.0.0

How to reproduce (e.g Puppet code you use)

hiera_hash('jenkins_credentials').each |$k, $v| {
    jenkins_credentials { "${k}":
      ensure => $v['ensure'],
      domain => $v['domain'],
      impl => $v['impl'],
      scope => $v['scope'],
      description => $v['description'],
      username => $v['username'],
      password => $v['password'],
      secret => $v['secret'],
      passphrase => $v['passphrase'],
      private_key => $v['private_key']
    }
  }

What are you seeing

Error: Could not prefetch jenkins_credentials provider 'cli': Execution of '/bin/cat /usr/share/jenkins/puppet_helper.groovy | /usr/bin/java -jar /usr/share/jenkins/jenkins-cli.jar -s http://localhost:8080 -logger WARNING -auth @/tmp/jenkins_credentials_for_puppet groovy = credentials_list_json' returned 1: ERROR: Unexpected exception occurred while performing groovy command.
UnsupportedCredentialsClass: unsupported com.datapipe.jenkins.vault.credentials.VaultAppRoleCredential@8c1f3e84
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247)
	at Actions$_credentials_list_json_closure2.doCall(RemoteClass:570)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
	at groovy.lang.Closure.call(Closure.java:414)
	at groovy.lang.Closure.call(Closure.java:430)
[ ... ]

What behaviour did you expect instead

it will get the list of credentials that only the module supports and that's it.

Output log

Same above

Any additional information you'd like to impart

We use heavily hashicorp-vault credentials plugin, but we need some credentials as well to bootstrap jenkins.

Those bootstrapping ones I was deploying them using this puppet module, but since the module does not support vault plugin, I had to create this one manually and caused the module to crash

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions