jenkins-plugin-runtime 0.1.24 → 0.1.25
Sign up to get free protection for your applications and to get access to all the features.
@@ -24,3 +24,5 @@ require 'jenkins/listeners/run_listener'
|
|
24
24
|
require 'jenkins/listeners/run_listener_proxy'
|
25
25
|
require 'jenkins/slaves/node_property'
|
26
26
|
require 'jenkins/slaves/node_property_proxy'
|
27
|
+
require 'jenkins/slaves/computer_listener'
|
28
|
+
require 'jenkins/slaves/computer_listener_proxy'
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module Jenkins::Slaves
|
2
|
+
# Receive notification of what computers in a build array are doing.
|
3
|
+
#
|
4
|
+
# Include this module in your class in order to receive callbacks
|
5
|
+
# when nodes come online, offline, etc.., etc...
|
6
|
+
#
|
7
|
+
# To receive a callback, override the method with the same name as
|
8
|
+
# the event. E.g.
|
9
|
+
#
|
10
|
+
# class MyComputerListener
|
11
|
+
# include Jenkins::Slaves::ComputerListener
|
12
|
+
#
|
13
|
+
# def online(computer, listener)
|
14
|
+
# puts "#{computer} is now online!"
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
module ComputerListener
|
19
|
+
extend Jenkins::Plugin::Behavior
|
20
|
+
|
21
|
+
implemented do |cls|
|
22
|
+
Jenkins.plugin.register_extension ComputerListenerProxy.new(Jenkins.plugin, cls.new)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Called before a {ComputerLauncher} is asked to launch a connection with {Computer}.
|
26
|
+
#
|
27
|
+
# This enables you to do some configurable checks to see if we
|
28
|
+
# want to bring this slave online or if there are considerations
|
29
|
+
# that would keep us from doing so.
|
30
|
+
#
|
31
|
+
# Calling Computer#abort would let you veto the launch operation. Other thrown exceptions
|
32
|
+
# will also have the same effect
|
33
|
+
#
|
34
|
+
# @param [Jenkins::Model::Computer] computer the computer about to be launched
|
35
|
+
# @param [Jenkins::Model::Listener] listener the listener connected to the slave console log.
|
36
|
+
def prelaunch(computer, listener)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Called when a slave attempted to connect via {ComputerLauncher} but failed.
|
40
|
+
#
|
41
|
+
# @param [Jenkins::Model::Computer] computer the computer that was trying to launch
|
42
|
+
# @param [Jenkins::Model::Listener] listener the listener connected to the slave console log
|
43
|
+
def launchfailed(computer, listener)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Called before a {Computer} is marked online.
|
47
|
+
#
|
48
|
+
# This enables you to do some work on all the slaves
|
49
|
+
# as they get connected. Unlike {#online},
|
50
|
+
# a failure to carry out this function normally will prevent
|
51
|
+
# a computer from marked as online.
|
52
|
+
#
|
53
|
+
# @param [Jenkins::Remote::Channel] channel the channel object to talk to the slave.
|
54
|
+
# @param [Jenkins::FilePath] root the directory where this slave stores files.
|
55
|
+
# @param [Jenkins::Model::Listener] listener connected to the launch log of the computer.
|
56
|
+
# @see {#online}
|
57
|
+
def preonline(computer, channel, root, listener)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Called right after a {Computer} comes online.
|
61
|
+
#
|
62
|
+
# This enables you to do some work on all the slaves
|
63
|
+
# as they get connected.
|
64
|
+
#
|
65
|
+
#
|
66
|
+
# @param [Jenkins::Model::Computer] computer the computer that just came online
|
67
|
+
# @param [Jenkins::Model::Listener] listener connected to the launch log of the computer.
|
68
|
+
# @see {#preonline}
|
69
|
+
#
|
70
|
+
def online(computer, listener)
|
71
|
+
end
|
72
|
+
|
73
|
+
# Called right after a {@link Computer} went offline.
|
74
|
+
#
|
75
|
+
# @param [Jenkins::Model::Computer] computer the computer that just went offline
|
76
|
+
def offline(computer)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Called when configuration of the node was changed, a node is added/removed, etc.
|
80
|
+
def configured()
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Jenkins::Slaves
|
2
|
+
class ComputerListenerProxy < Java.hudson.slaves.ComputerListener
|
3
|
+
include Jenkins::Plugin::Proxy
|
4
|
+
|
5
|
+
def preLaunch(computer, taskListener)
|
6
|
+
@object.prelaunch(import(computer), import(listener))
|
7
|
+
end
|
8
|
+
|
9
|
+
def onLaunchFailure(computer, taskListener)
|
10
|
+
@object.launchfailed(import(computer), import(taskListener))
|
11
|
+
end
|
12
|
+
|
13
|
+
def preOnline(computer, channel, rootFilePath, taskListener)
|
14
|
+
@object.preonline(import(computer), import(channel), Jenkins::FilePath.new(rootFilePath), import(taskListener))
|
15
|
+
end
|
16
|
+
|
17
|
+
def onOnline(computer)
|
18
|
+
@object.online(import(computer))
|
19
|
+
end
|
20
|
+
|
21
|
+
def onOffline(computer)
|
22
|
+
@object.offline(import(computer))
|
23
|
+
end
|
24
|
+
|
25
|
+
def onConfigurationChange()
|
26
|
+
@object.configured()
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: jenkins-plugin-runtime
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.25
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Charles Lowell
|
@@ -126,6 +126,8 @@ files:
|
|
126
126
|
- lib/jenkins/plugin/wrapper.rb
|
127
127
|
- lib/jenkins/rack.rb
|
128
128
|
- lib/jenkins/slaves/cloud.rb
|
129
|
+
- lib/jenkins/slaves/computer_listener.rb
|
130
|
+
- lib/jenkins/slaves/computer_listener_proxy.rb
|
129
131
|
- lib/jenkins/slaves/node_property.rb
|
130
132
|
- lib/jenkins/slaves/node_property_proxy.rb
|
131
133
|
- lib/jenkins/tasks/build_step.rb
|