Module: LitaBambooHelper::Plan

Included in:
Lita::Handlers::Bamboo
Defined in:
lib/bamboohelper/plans.rb

Instance Method Summary collapse

Instance Method Details

#add_build_label(build_id, label) ⇒ Object

def



145
146
147
148
149
150
151
152
153
154
155
156
# File 'lib/bamboohelper/plans.rb', line 145

def add_build_label(build_id, label)
  url = "#{config.url}/result/#{build_id}/label"
  payload = {'name' =>  "#{label}"}
  headers = {'Content-Type'=> 'application/json'}
  info = []
  begin
    RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :post, :payload =>payload, :headers => headers )
    true
  rescue Exception=>e
    raise "Error to add label to build result :#{e.message}"
  end
end

#delete_build_label(build_id, label) ⇒ Object

def



158
159
160
161
162
163
164
165
166
# File 'lib/bamboohelper/plans.rb', line 158

def delete_build_label(build_id, label)
  url = "#{config.url}/result/#{build_id}/#{label}"
  begin
    RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :delete )
    true
  rescue Exception=>e
    raise "Error to delete label from build result :#{e.message}"
  end
end

#dequeue_plan(build_id) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/bamboohelper/plans.rb', line 81

def dequeue_plan(build_id)
  url = "#{config.url}/queue/#{build_id}?os_authType=basic"
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :delete, user: config.user, password: config.password)
    if response.code == 200
      true
    else
      false
    end
  rescue Exception=>e
    raise "Error to dequeue plan build #{build_id} :#{e.message}"
  end
end

#get_build_labels(build_id) ⇒ Object



128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/bamboohelper/plans.rb', line 128

def get_build_labels(build_id)
  url = "#{config.url}/result/#{build_id}/label.json"
  info = []
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get)
    json_response = JSON.parse(response)
    if json_response['labels']['label']
      json_response['labels']['label'].each do |result|
        info << "[#{result['name']}]"
      end
    end
  rescue Exception=>e
    raise "Error to list build queue :#{e.message}"
  end
  info.join(',')
end

#get_server_infoObject



112
113
114
115
116
117
118
119
120
121
# File 'lib/bamboohelper/plans.rb', line 112

def get_server_info
  url = "#{config.url}/info.json?os_authType=basic"
  info = {}
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get, user: config.user, password: config.password)
    info = JSON.parse(response)
  rescue Exception=>e
    raise "Error to get server info :#{e.message}"
  end
end

#get_server_versionObject



123
124
125
126
# File 'lib/bamboohelper/plans.rb', line 123

def get_server_version
  info = get_server_info
  info['version']
end

#list_plan_build(plan_id, last = 1) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/bamboohelper/plans.rb', line 39

def list_plan_build(plan_id, last=1)
  count =last -1
  if count<0
    count=0
  end
  puts "***#{count}"
  url = "#{config.url}/result/#{plan_id}.json?expand=results[0:#{count}].result.labels"
  info = []
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get)
    json_response = JSON.parse(response)
    if json_response['results']['result']
      json_response['results']['result'].each do |result|
        labels = []
        if result['labels']['label']
          result['labels']['label'].each do |label|
            labels << label['name']
          end
        end
        info << "[#{result['buildResultKey']}] : Successful=#{result['successful'] ? 'T' : 'F'} Finished=#{result['finished'] ? 'T' : 'F'} NotRunYet=#{result['notRunYet'] ? 'T' : 'F'} Start: #{result['prettyBuildStartedTime']} Complete: #{result['prettyBuildCompletedTime']} Label: #{labels.to_s}"
      end
    end
  rescue Exception=>e
    raise "Error to list build results :#{e.message}"
  end
  info
end

#list_project_plan(proj_id) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/bamboohelper/plans.rb', line 22

def list_project_plan(proj_id)
  url = "#{config.url}/project/#{proj_id}.json?expand=plans"
  info = []
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get)
    json_response = JSON.parse(response)
    if json_response['plans']['plan']
      json_response['plans']['plan'].each do |plan|
        info << "[#{plan['key']}] : #{plan['name']} Enabled: #{plan['enabled']}"
      end
    end
  rescue Exception=>e
    raise "Error to list plans :#{e.message}"
  end
  info
end

#list_projectsObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/bamboohelper/plans.rb', line 5

def list_projects
  url = "#{config.url}/project.json"
  info = []
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get)
    json_response = JSON.parse(response)
    if json_response['projects']['project']
      json_response['projects']['project'].each do |proj|
        info << "[#{proj['key']}] : #{proj['name']}"
      end
    end
  rescue Exception=>e
    raise "Error to list projects :#{e.message}"
  end
  info
end

#list_queueObject



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/bamboohelper/plans.rb', line 95

def list_queue()
  url = "#{config.url}/queue.json?os_authType=basic"
  info = []
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get, user: config.user, password: config.password)
    json_response = JSON.parse(response)
    if json_response['queuedBuilds']['queuedBuild']
      json_response['queuedBuilds']['queuedBuild'].each do |result|
        info << "BuildKey: #{result['buildResultKey']} TrigerReason: #{result['triggerReason']} "
      end
    end
  rescue Exception=>e
    raise "Error to list build queue :#{e.message}"
  end
  info.to_s
end

#pause_serverObject

def



168
169
170
171
172
173
174
175
176
# File 'lib/bamboohelper/plans.rb', line 168

def pause_server()
  url = "#{config.url}/server/pause"
  begin
    RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :post, user: config.user, password: config.password)
    true
  rescue Exception=>e
    raise "Error to pause bamboo server:#{e.message}"
  end
end

#prepare_restartObject



188
189
190
191
192
193
194
195
196
# File 'lib/bamboohelper/plans.rb', line 188

def prepare_restart()
  url = "#{config.url}/server/prepareForRestart"
  begin
    RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :put, user: config.user, password: config.password)
    true
  rescue Exception=>e
    raise "Error to prepare bamboo server to restart :#{e.message}"
  end
end

#queue_plan(plan_id) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/bamboohelper/plans.rb', line 67

def queue_plan(plan_id)
  url = "#{config.url}/queue/#{plan_id}?os_authType=basic"
  begin
    response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :post, user: config.user, password: config.password)
    if response.code == 200
      true
    else
      false
    end
  rescue Exception=>e
    raise "Error to queue plan #{plan_id} for build :#{e.message}"
  end
end

#resume_serverObject



178
179
180
181
182
183
184
185
186
# File 'lib/bamboohelper/plans.rb', line 178

def resume_server()
  url = "#{config.url}/server/resume"
  begin
    RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :post, user: config.user, password: config.password)
    true
  rescue Exception=>e
    raise "Error to resume bamboo server :#{e.message}"
  end
end