Giter VIP home page Giter VIP logo

proxmox-plugin's Introduction

Jenkins Proxmox Plugin

Use Proxmox virtual machines as agents in Jenkins

Proxmox Plugin ChangeLog Installs License Build Status

Description

This plugin allows the use of Proxmox virtual machines as agents in Jenkins.

Limitations

  • Only Qemu virtual machines supported (at the moment).
  • No option to avoid rolling back to a snapshot on agent start up.
  • No checking on virtual machine ready state/errors during rollback.

Configuration

Datacenter cloud

To add a new Proxmox datacenter cloud, click on "Manage Jenkins" then "Configure System". In the "Cloud" section click "Add cloud" and select "Datacenter".

Virtual machine agents

To add agents click on "Manage Jenkins" then "Manage Nodes". Select the node type "Agent virtual machine running on a Proxmox datacenter." and enter a name for the node.

Manually Installing

  1. Clone this repo.
  2. Run mvn clean package.
  3. Go to Jenkins in a web browser.
  4. Click on "Manage Jenkins", select "Manage Plugins".
  5. Click on the "Advanced" tab then upload the file target/proxmox.hpi under the "Upload Plugin" section.

To run directly a Jenkins test instance with the plugin, run mvn hpi:run.

ChangLog

proxmox-plugin's People

Contributors

bguerin avatar daniel-beck-bot avatar justnom avatar lepresidente avatar maxhy avatar skoslowski avatar zbynek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

proxmox-plugin's Issues

Jenkins auto-reconnect fails job

When snapshot revert occurs quite often then auto reconnect may launch node before launch call in the plugin. Thus unchecked exception of already launched node, depending on the delegate type, occurs and job stay in inconsistent state - not finished and not in any queue.

support to shutdown and start a vm

What feature do you want to see added?

I want to shutdown a vm if it doesn't receive jobs for a long time.
If a job is coming the vm will be started,this will save some resources.

Upstream changes

No response

Jenkins interface fails with error in build executor status frame.

Jenkins interface fails with the error in build executor status frame, when reconnecting reverted slave:

Caught unhandled exception with ID 64a2d2f0-6b8b-4ff0-8407-3c88a61256eb org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.235.2.jar!/hudson/model/View/sidepanel.jelly:75:50: <st:include> org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.235.2.jar!/lib/hudson/executors.jelly:41:68: <j:when> Failed to localize key=Disconnect before snapshot revert,args=[]

Port handling

  • do not ignore port without notice
  • do not use default 8006 without notice

Plugin just doesn't work

When I tried to save a new node using proxmox VM as a slave, I get this error:

Caused: java.lang.Error: Failed to instantiate class org.jenkinsci.plugins.proxmox.VirtualMachineSlave from {"name":"sample","datacenterDescription":"root@pam - hypervisor.steamngin.com","datacenterNode":"hypervisor","virtualMachineId":"108","snapshotName":"current","startVM":true,"revertPolicy":"AFTER_CONNECT","nodeDescription":"","startupWaitingPeriodSeconds":"60","numExecutors":"1","remoteFS":"/home/steamuser/_work/jenkins","labelString":"","mode":"NORMAL","":["hudson.plugins.sshslaves.SSHLauncher","hudson.slaves.RetentionStrategy$Demand"],"delegateLauncher":{"stapler-class":["hudson.slaves.JNLPLauncher","hudson.slaves.CommandLauncher","hudson.plugins.sshslaves.SSHLauncher"],"host":"hyp-ci-redhat-runner-01.steamngin.com","includeUser":"false","credentialsId":"steamuser","":"3","sshHostKeyVerificationStrategy":{"stapler-class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy","$class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy"},"port":"22","javaPath":"","jvmOptions":"","prefixStartSlaveCmd":"","suffixStartSlaveCmd":"","launchTimeoutSeconds":"","maxNumRetries":"","retryWaitTime":"","tcpNoDelay":true,"workDir":""},"retentionStrategy":{"stapler-class":["hudson.slaves.RetentionStrategy$Always","hudson.slaves.SimpleScheduledRetentionStrategy","hudson.slaves.RetentionStrategy$Demand"],"inDemandDelay":"1","idleDelay":"1"},"nodeProperties":{"stapler-class-bag":"true"},"type":"org.jenkinsci.plugins.proxmox.VirtualMachineSlave","Jenkins-Crumb":"62a0bb74bafea87ba08933fe5aa3d547fad215892f6a1b9470b034987e6f953b"}
	at hudson.model.Descriptor.newInstance(Descriptor.java:606)
	at hudson.model.ComputerSet.doDoCreateItem(ComputerSet.java:297)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
Caused: java.lang.reflect.InvocationTargetException
	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:400)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
	at org.kohsuke.stapler.SelectionInterceptedFunction$Adapter.invoke(SelectionInterceptedFunction.java:36)
	at org.kohsuke.stapler.verb.HttpVerbInterceptor.invoke(HttpVerbInterceptor.java:48)
	at org.kohsuke.stapler.SelectionInterceptedFunction.bindAndInvoke(SelectionInterceptedFunction.java:26)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
	at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:220)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
	at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:76)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:153)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:92)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:109)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
	at java.lang.Thread.run(Thread.java:748)
2021-04-15 10:44:12.653+0000 [id=16]	WARNING	h.i.i.InstallUncaughtExceptionHandler#handleException: Caught unhandled exception with ID 2344e2e6-3356-4fb0-82c0-8d0cb7ed3a5a
java.lang.ClassNotFoundException: ["hudson.slaves.JNLPLauncher","hudson.slaves.CommandLauncher","hudson.plugins.sshslaves.SSHLauncher"]
	at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:2179)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:681)
Caused: java.lang.IllegalArgumentException: Class ["hudson.slaves.JNLPLauncher","hudson.slaves.CommandLauncher","hudson.plugins.sshslaves.SSHLauncher"] is specified in JSON, but no such class found in classLoader hudson.PluginManager$UberClassLoader
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:686)
Caused: java.lang.IllegalArgumentException: Failed to instantiate class hudson.slaves.ComputerLauncher from {"stapler-class":["hudson.slaves.JNLPLauncher","hudson.slaves.CommandLauncher","hudson.plugins.sshslaves.SSHLauncher"],"host":"hyp-ci-redhat-runner-01.steamngin.com","includeUser":"false","credentialsId":"steamuser","":"3","sshHostKeyVerificationStrategy":{"stapler-class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy","$class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy"},"port":"22","javaPath":"","jvmOptions":"","prefixStartSlaveCmd":"","suffixStartSlaveCmd":"","launchTimeoutSeconds":"","maxNumRetries":"","retryWaitTime":"","tcpNoDelay":true,"workDir":""}
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:693)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:490)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:799)
Caused: java.lang.IllegalArgumentException: Failed to convert the delegateLauncher parameter of the constructor public org.jenkinsci.plugins.proxmox.VirtualMachineSlave(java.lang.String,java.lang.String,java.lang.String,java.lang.String,hudson.model.Node$Mode,java.lang.String,hudson.slaves.ComputerLauncher,hudson.slaves.RetentionStrategy,java.util.List,java.lang.String,java.lang.String,java.lang.Integer,java.lang.String,java.lang.Boolean,int,org.jenkinsci.plugins.proxmox.VirtualMachineLauncher$RevertPolicy) throws hudson.model.Descriptor$FormException,java.io.IOException
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:801)
	at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:85)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:690)
Caused: java.lang.IllegalArgumentException: Failed to instantiate class org.jenkinsci.plugins.proxmox.VirtualMachineSlave from {"name":"sample","datacenterDescription":"root@pam - hypervisor.steamngin.com","datacenterNode":"hypervisor","virtualMachineId":"108","snapshotName":"current","startVM":true,"revertPolicy":"AFTER_CONNECT","nodeDescription":"","startupWaitingPeriodSeconds":"60","numExecutors":"1","remoteFS":"/home/steamuser/_work/jenkins","labelString":"","mode":"NORMAL","":["hudson.plugins.sshslaves.SSHLauncher","hudson.slaves.RetentionStrategy$Demand"],"delegateLauncher":{"stapler-class":["hudson.slaves.JNLPLauncher","hudson.slaves.CommandLauncher","hudson.plugins.sshslaves.SSHLauncher"],"host":"hyp-ci-redhat-runner-01.steamngin.com","includeUser":"false","credentialsId":"steamuser","":"3","sshHostKeyVerificationStrategy":{"stapler-class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy","$class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy"},"port":"22","javaPath":"","jvmOptions":"","prefixStartSlaveCmd":"","suffixStartSlaveCmd":"","launchTimeoutSeconds":"","maxNumRetries":"","retryWaitTime":"","tcpNoDelay":true,"workDir":""},"retentionStrategy":{"stapler-class":["hudson.slaves.RetentionStrategy$Always","hudson.slaves.SimpleScheduledRetentionStrategy","hudson.slaves.RetentionStrategy$Demand"],"inDemandDelay":"1","idleDelay":"1"},"nodeProperties":{"stapler-class-bag":"true"},"type":"org.jenkinsci.plugins.proxmox.VirtualMachineSlave","Jenkins-Crumb":"62a0bb74bafea87ba08933fe5aa3d547fad215892f6a1b9470b034987e6f953b"}
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:693)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:490)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:486)
	at hudson.model.Descriptor.newInstance(Descriptor.java:598)
Caused: java.lang.Error: Failed to instantiate class org.jenkinsci.plugins.proxmox.VirtualMachineSlave from {"name":"sample","datacenterDescription":"root@pam - hypervisor.steamngin.com","datacenterNode":"hypervisor","virtualMachineId":"108","snapshotName":"current","startVM":true,"revertPolicy":"AFTER_CONNECT","nodeDescription":"","startupWaitingPeriodSeconds":"60","numExecutors":"1","remoteFS":"/home/steamuser/_work/jenkins","labelString":"","mode":"NORMAL","":["hudson.plugins.sshslaves.SSHLauncher","hudson.slaves.RetentionStrategy$Demand"],"delegateLauncher":{"stapler-class":["hudson.slaves.JNLPLauncher","hudson.slaves.CommandLauncher","hudson.plugins.sshslaves.SSHLauncher"],"host":"hyp-ci-redhat-runner-01.steamngin.com","includeUser":"false","credentialsId":"steamuser","":"3","sshHostKeyVerificationStrategy":{"stapler-class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy","$class":"hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy"},"port":"22","javaPath":"","jvmOptions":"","prefixStartSlaveCmd":"","suffixStartSlaveCmd":"","launchTimeoutSeconds":"","maxNumRetries":"","retryWaitTime":"","tcpNoDelay":true,"workDir":""},"retentionStrategy":{"stapler-class":["hudson.slaves.RetentionStrategy$Always","hudson.slaves.SimpleScheduledRetentionStrategy","hudson.slaves.RetentionStrategy$Demand"],"inDemandDelay":"1","idleDelay":"1"},"nodeProperties":{"stapler-class-bag":"true"},"type":"org.jenkinsci.plugins.proxmox.VirtualMachineSlave","Jenkins-Crumb":"62a0bb74bafea87ba08933fe5aa3d547fad215892f6a1b9470b034987e6f953b"}
	at hudson.model.Descriptor.newInstance(Descriptor.java:606)
	at hudson.model.ComputerSet.doDoCreateItem(ComputerSet.java:297)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
	at org.kohsuke.stapler.SelectionInterceptedFunction$Adapter.invoke(SelectionInterceptedFunction.java:36)
	at org.kohsuke.stapler.verb.HttpVerbInterceptor.invoke(HttpVerbInterceptor.java:48)
	at org.kohsuke.stapler.SelectionInterceptedFunction.bindAndInvoke(SelectionInterceptedFunction.java:26)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
	at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
Caused: javax.servlet.ServletException
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:816)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:220)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
	at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:76)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:153)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:92)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:109)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
	at java.lang.Thread.run(Thread.java:748)

error message not explicit

Hi,

When I make a "test connexion" in the configuration page, with an invalid credentials :
Error: Error while reading from POST: [401] authentication failure
{"data":null}

Additional maintainers required

I've been using Jenkins and Proxmox for a while now and I have leaded my previous companies to such software. That's how I became this plugin maintainer.
I have now left such companies to start a new one, and even if I would continue to move forward with these solutions when needed, I don't have such requirement at this time.

That means I am unlikely to be pro-active on this plugin development for now. It would be good to have additional maintainers.

Anyone interested, please post here!

pinging latest PR contributors, @eugenyk @bguerin @Mithweth @skoslowski

Documentation is missing

Summary

The only page marked as documentation is this page but it doesn't cover any use case, requirements, and details on how to use it.

Could you please link some references?

Problem when runing windows 11 with revert policy before every job

Jenkins and plugins versions report

Environment
Jenkins: 2.332.1
OS: Linux - 5.4.0-104-generic
---
ace-editor:1.1
ant:1.13
antisamy-markup-formatter:2.7
apache-httpcomponents-client-4-api:4.5.13-1.0
bootstrap4-api:4.6.0-3
bootstrap5-api:5.1.3-6
bouncycastle-api:2.25
branch-api:2.1044.v2c007e51b_87f
build-timeout:1.20
caffeine-api:2.9.2-29.v717aac953ff3
checks-api:1.7.2
cloudbees-folder:6.714.v79e858ef76a_2
command-launcher:1.6
copyartifact:1.46.3
credentials:1087.v16065d268466
credentials-binding:1.27.1
cygpath:1.5
cygwin-process-killer:0.2
description-setter:1.10
display-url-api:2.3.6
durable-task:495.v29cd95ec10f2
echarts-api:5.3.0-2
email-ext:2.87
external-monitor-job:191.v363d0d1efdf8
font-awesome-api:6.0.0-1
git:4.11.0
git-client:3.11.0
git-server:1.10
github:1.34.3
github-api:1.301-378.v9807bd746da5
github-branch-source:1598.v91207e9f9b_4a_
gitlab-plugin:1.5.29
gradle:1.38
handlebars:3.0.8
jackson2-api:2.13.2-260.v43d711474c77
javadoc:217.v905b_86277a_2a_
javax-activation-api:1.2.0-2
javax-mail-api:1.6.2-5
jaxb:2.3.0.1
jdk-tool:1.5
jersey2-api:2.35-4
jjwt-api:0.11.2-9.c8b45b8bb173
jnr-posix-api:3.1.7-3
jobConfigHistory:1133.v0f5420f85053
jquery3-api:3.6.0-2
jsch:0.1.55.2
junit:1.58
ldap:2.8
lockable-resources:2.14
mailer:408.vd726a_1130320
matrix-auth:3.1
matrix-project:758.v7a_ea_491852f3
momentjs:1.1.1
nodelabelparameter:1.10.3
okhttp-api:4.9.3-105.vb96869f8ac3a
pam-auth:1.7
pipeline-build-step:2.16
pipeline-github-lib:36.v4c01db_ca_ed16
pipeline-graph-analysis:188.v3a01e7973f2c
pipeline-input-step:446.vf27b_0b_83500e
pipeline-milestone-step:100.v60a_03cd446e1
pipeline-model-api:2.2075.vce74e77b_ce40
pipeline-model-definition:2.2075.vce74e77b_ce40
pipeline-model-extensions:2.2075.vce74e77b_ce40
pipeline-rest-api:2.23
pipeline-stage-step:291.vf0a8a7aeeb50
pipeline-stage-tags-metadata:2.2075.vce74e77b_ce40
pipeline-stage-view:2.23
plain-credentials:1.8
plugin-util-api:2.16.0
popper-api:1.16.1-2
popper2-api:2.11.4-1
proxmox:0.7.1
resource-disposer:0.18
scm-api:595.vd5a_df5eb_0e39
script-security:1145.vb_cf6cf6ed960
snakeyaml-api:1.29.1
ssh-credentials:1.19
ssh-slaves:1.806.v2253cedd3295
sshd:3.1.0
structs:308.v852b473a2b8c
timestamper:1.17
token-macro:285.vff7645a_56ff0
trilead-api:1.0.13
windows-slaves:1.8
workflow-aggregator:2.7
workflow-api:1143.v2d42f1e9dea_5
workflow-basic-steps:941.vdfe1b_a_132c64
workflow-cps:2683.vd0a_8f6a_1c263
workflow-cps-global-lib:564.ve62a_4eb_b_e039
workflow-durable-task-step:1128.v8c259d125340
workflow-job:1174.vdcb_d054cf74a_
workflow-multibranch:711.vdfef37cda_816
workflow-scm-step:2.13
workflow-step-api:622.vb_8e7c15b_c95a_
workflow-support:815.vd60466279fc8
ws-cleanup:0.41

What Operating System are you using (both controller, and any agents involved in the problem)?

Ubuntu 20.04 on the controller and windows 11 on the agent.

Reproduction steps

  1. Configure the system with a windows 11 (not tried other windows versions) agent and select the "Before every job running on the virtual machine" revert policy.
  2. Run a job on the agent configured.

Expected Results

The job will run without a problem.

Actual Results

The job fails with the error:

21:31:36 Started by user Me
21:31:36 Running as SYSTEM
21:31:36 ERROR: Issue with creating launcher for agent Agentname. The agent has not been fully initialized yet
21:31:36 Building remotely on Agentname (Labelnames)ERROR: Agentname seems to be offline
21:31:36 ERROR: Step ‘Archive the artifacts’ failed: no workspace for jobname #34
21:31:36 Finished: FAILURE

And it does this before the machine even had time to revert the snapshot and start again. Even though I have a Startup Idle time of 60 seconds the error comes after something like 10 seconds.

Anything else?

It works if I use the "After connect with the virtual machine" revert policy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.