diff options
-rw-r--r-- | dashboards/dashboard.erb | 16 | ||||
-rw-r--r-- | jobs/jenkins_build_status.rb | 73 | ||||
-rw-r--r-- | widgets/jenkins_build_status/jenkins_build_status.coffee | 28 | ||||
-rw-r--r-- | widgets/jenkins_build_status/jenkins_build_status.html | 16 | ||||
-rw-r--r-- | widgets/jenkins_build_status/jenkins_build_status.scss | 56 |
5 files changed, 6 insertions, 183 deletions
diff --git a/dashboards/dashboard.erb b/dashboards/dashboard.erb index 1c97924..5c86d7f 100644 --- a/dashboards/dashboard.erb +++ b/dashboards/dashboard.erb @@ -2,28 +2,24 @@ <div data-id="gitlab-builds" data-view="GitlabBuildStatus" data-title="Gitlab"></div> </li> -<li data-row="1" data-col="3" data-sizex="2" data-sizey="3"> - <div data-id="jenkinsBuildStatus" data-view="JenkinsBuildStatus" data-title="Jenkins"></div> -</li> - -<li data-row="1" data-col="5" data-sizex="2" data-sizey="1"> +<li data-row="1" data-col="3" data-sizex="2" data-sizey="1"> <div data-id="nagios-mail" data-view="Nagios" data-unordered="true" data-title="Nagios mail.bitmask" data-moreinfo="Unacknowledged events"></div> </li> -<li data-row="2" data-col="5" data-sizex="2" data-sizey="1"> +<li data-row="2" data-col="3" data-sizex="2" data-sizey="1"> <div data-id="nagios-demo" data-view="Nagios" data-unordered="true" data-title="Nagios demo.bitmask" data-moreinfo="Unacknowledged events"></div> </li> -<li data-row="3" data-col="5" data-sizex="2" data-sizey="1"> +<li data-row="3" data-col="3" data-sizex="2" data-sizey="1"> <div data-id="nagios-leap" data-view="Nagios" data-unordered="true" data-title="Nagios leap.se" data-moreinfo="Unacknowledged events"></div> </li> -<li data-row="1" data-col="7" data-sizex="2" data-sizey="1"> +<li data-row="1" data-col="5" data-sizex="2" data-sizey="1"> <div data-id="nagios-dev" data-view="Nagios" data-unordered="true" data-title="Nagios dev.bitmask" data-moreinfo="Unacknowledged events"></div> </li> -<li data-row="2" data-col="7" data-sizex="2" data-sizey="1"> +<li data-row="2" data-col="5" data-sizex="2" data-sizey="1"> <div data-id="nagios-unstable" data-view="Nagios" data-unordered="true" data-title="Nagios unstable.bitmask" data-moreinfo="Unacknowledged events"></div> </li> -<li data-row="3" data-col="7" data-sizex="2" data-sizey="1"> +<li data-row="3" data-col="5" data-sizex="2" data-sizey="1"> <div data-id="nagios-cdev" data-view="Nagios" data-unordered="true" data-title="Nagios cdev.bitmask" data-moreinfo="Unacknowledged events"></div> </li> diff --git a/jobs/jenkins_build_status.rb b/jobs/jenkins_build_status.rb deleted file mode 100644 index 267b8da..0000000 --- a/jobs/jenkins_build_status.rb +++ /dev/null @@ -1,73 +0,0 @@ -require 'net/http' -require 'json' - -JENKINS_URI = "https://jenkins.leap.se/" - -JENKINS_AUTH = { - 'name' => 'nobody', - 'password' => 'nopw' -} - -SCHEDULER.every '10s' do - - json = getFromJenkins(JENKINS_URI + 'api/json?pretty=true') - - failedJobs = Array.new - puts failedJobs - succeededJobs = Array.new - array = json['jobs'] - array.each { - |job| - - next if job['color'] == 'disabled' - next if job['color'] == 'notbuilt' - next if job['color'] == 'blue' - next if job['color'] == 'blue_anime' - - jobStatus = ''; - if job['color'] == 'yellow' || job['color'] == 'yellow_anime' - jobStatus = getFromJenkins(job['url'] + 'lastUnstableBuild/api/json') - elsif job['color'] == 'aborted' || job['color'] == 'aborted_anime' - jobStatus = getFromJenkins(job['url'] + 'lastUnsuccessfulBuild/api/json') - else - jobStatus = getFromJenkins(job['url'] + 'lastFailedBuild/api/json') - end - - culprits = jobStatus['culprits'] - - culpritName = getNameFromCulprits(culprits) - if culpritName != '' - culpritName = culpritName.partition('<').first - end - - failedJobs.push({ label: job['name'], value: culpritName}) - } - - failed = failedJobs.size > 0 - - send_event('jenkinsBuildStatus', { failedJobs: failedJobs, succeededJobs: succeededJobs, failed: failed }) -end - -def getFromJenkins(path) - - uri = URI.parse(path) - - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - request = Net::HTTP::Get.new(uri.request_uri) - ##if JENKINS_AUTH['name'] - # request.basic_auth(JENKINS_AUTH['name'], JENKINS_AUTH['password']) - #end - response = http.request(request) - - json = JSON.parse(response.body) - return json -end - -def getNameFromCulprits(culprits) - culprits.each { - |culprit| - return culprit['fullName'] - } - return '' -end diff --git a/widgets/jenkins_build_status/jenkins_build_status.coffee b/widgets/jenkins_build_status/jenkins_build_status.coffee deleted file mode 100644 index d7d8630..0000000 --- a/widgets/jenkins_build_status/jenkins_build_status.coffee +++ /dev/null @@ -1,28 +0,0 @@ -class Dashing.JenkinsBuildStatus extends Dashing.Widget - - lastPlayed: 0 - timeBetweenSounds: 300000 - - onData: (data) -> - if data.failed - $(@node).find('div.build-failed').show() - $(@node).find('div.build-succeeded').hide() - $(@node).css("background-color", "red") - - if 'speechSynthesis' of window - @playSoundForUser data.failedJobs[0].value if Date.now() - @lastPlayed > @timeBetweenSounds - else - $(@node).find('div.build-failed').hide() - $(@node).find('div.build-succeeded').show() - $(@node).css("background-color", "#12b0c5") - - playSoundForUser: (user) -> - @lastPlayed = Date.now() - texts = ["#{user} has broken the build.", "The build is broken by #{user}", "#{user} is great, but lacks some programming skills", "Oops, I did it again."] - textNr = Math.floor((Math.random() * texts.length)); - @playSound texts[textNr] - - playSound: (text) -> - msg = new SpeechSynthesisUtterance(text) - msg.voice = speechSynthesis.getVoices()[0] - speechSynthesis.speak msg
\ No newline at end of file diff --git a/widgets/jenkins_build_status/jenkins_build_status.html b/widgets/jenkins_build_status/jenkins_build_status.html deleted file mode 100644 index 472bc73..0000000 --- a/widgets/jenkins_build_status/jenkins_build_status.html +++ /dev/null @@ -1,16 +0,0 @@ -<div class="build-failed"> - <h1 class="jenkins-status"><span data-bind="title"></span> FAILED</h1> - <ul class="list-nostyle list-failed"> - <li data-foreach-item="failedJobs"> - <div class="label" data-bind="item.label"></div> - <div class="value" data-bind="item.value"></div> - </li> - </ul> -</div> - -<div class="build-succeeded"> - <h1 class="jenkins-status">All <span data-bind="title"></span> builds are successful</h1> - <i class="fa fa-thumbs-o-up"></i> -</div> - -<p class="updated-at" data-bind="updatedAtMessage"></p> diff --git a/widgets/jenkins_build_status/jenkins_build_status.scss b/widgets/jenkins_build_status/jenkins_build_status.scss deleted file mode 100644 index 2e475b0..0000000 --- a/widgets/jenkins_build_status/jenkins_build_status.scss +++ /dev/null @@ -1,56 +0,0 @@ -// ---------------------------------------------------------------------------- -// Sass declarations -// ---------------------------------------------------------------------------- -$background-color: #ec663c; -$title-color: rgba(255, 255, 255, 0.7); -$label-color: rgba(255, 255, 255, 0.7); -$value-color: #fff; - -// ---------------------------------------------------------------------------- -// Widget-text styles -// ---------------------------------------------------------------------------- -.widget-jenkins-build-status { - - background-color: $background-color; - - .title { - color: $title-color; - } - .updated-at { - color: rgba(255, 255, 255, 0.7); - } - - ol, ul { - margin: 0 15px; - text-align: left; - color: $label-color; - } - - li { - margin-bottom: 5px; - font-size: 20px; - } - - .label { - color: $label-color; - } - - .value { - margin-left: 12px; - font-weight: 600; - color: $value-color; - } - - .updated-at { - color: rgba(0, 0, 0, 0.3); - } - - .build-failed { - display: none; - } - - .fa { - font-size: 10em; - color: $label-color; - } -} |