Class: Kuroko2::Workflow::Notifier::Hipchat

Inherits:
Object
  • Object
show all
Defined in:
lib/autoload/kuroko2/workflow/notifier/hipchat.rb

Constant Summary collapse

USER_NAME =
'kuroko2'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instance) ⇒ Hipchat

Returns a new instance of Hipchat.



9
10
11
12
13
14
15
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 9

def initialize(instance)
  hipchat_options = Kuroko2.config.notifiers.hipchat.try!(:options).try!(:symbolize_keys) || {}
  @instance   = instance
  @definition = instance.job_definition
  @hipchat    = HipChat::Client.new(Kuroko2.config.notifiers.hipchat.api_token, hipchat_options)
  @message_builder = Workflow::Notifier::Concerns::ChatMessageBuilder.new(instance)
end

Instance Attribute Details

#hipchatObject (readonly)

Returns the value of attribute hipchat.



5
6
7
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 5

def hipchat
  @hipchat
end

#message_builderObject (readonly)

Returns the value of attribute message_builder.



5
6
7
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 5

def message_builder
  @message_builder
end

Instance Method Details

#notify_back_to_normalObject



82
83
84
85
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 82

def notify_back_to_normal
  message = build_message(level: 'SUCCESS', text: message_builder.back_to_normal_text)
  send_to_hipchat(message)
end

#notify_cancellationObject



47
48
49
50
51
52
53
54
55
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 47

def notify_cancellation
  if @definition.notify_cancellation || @definition.hipchat_notify_finished?
    message = build_message(level: 'WARNING', text: message_builder.failure_text)
    message << "<br>"
    message << @instance.logs.reverse.detect{ |log| log.level == 'WARN' }.try!(:message)

    send_to_hipchat(message, color: 'yellow')
  end
end

#notify_criticalObject



66
67
68
69
70
71
72
73
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 66

def notify_critical
  message = build_message(level: 'CRITICAL', text: message_builder.failure_text)
  message << "<br>"
  message << @instance.logs.last(2).first.message

  send_to_hipchat(message, color: 'red', notify: true)
  send_additional_text_to_hipchat
end

#notify_failureObject



57
58
59
60
61
62
63
64
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 57

def notify_failure
  message = build_message(level: 'FAILURE', text: message_builder.failure_text)
  message << "<br>"
  message << @instance.logs.last(2).first.message

  send_to_hipchat(message, color: 'red', notify: true)
  send_additional_text_to_hipchat
end

#notify_finishedObject



75
76
77
78
79
80
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 75

def notify_finished
  if @definition.hipchat_notify_finished?
    message = build_message(level: 'SUCCESS', text: message_builder.finished_text)
    send_to_hipchat(message)
  end
end

#notify_launchObject



17
18
19
20
21
22
23
24
25
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 17

def notify_launch
  if @definition.hipchat_notify_finished?
    message = build_message(level: 'SUCCESS', text: message_builder.launched_text)
    message << "<br>"
    message << @instance.logs.reverse.detect{ |log| log.level == 'INFO' }.try!(:message)

    send_to_hipchat(message, color: 'yellow')
  end
end

#notify_long_elapsed_timeObject



87
88
89
90
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 87

def notify_long_elapsed_time
  message = build_message(level: 'WARNING', text: message_builder.long_elapsed_time_text)
  send_to_hipchat(message, color: 'red')
end

#notify_retryingObject



27
28
29
30
31
32
33
34
35
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 27

def notify_retrying
  if @definition.hipchat_notify_finished
    message = build_message(level: 'SUCCESS', text: message_builder.retrying_text)
    message << "<br>"
    message << @instance.logs.last(2).first.message

    send_to_hipchat(message, color: 'yellow')
  end
end

#notify_skippingObject



37
38
39
40
41
42
43
44
45
# File 'lib/autoload/kuroko2/workflow/notifier/hipchat.rb', line 37

def notify_skipping
  if @definition.hipchat_notify_finished
    message = build_message(level: 'SUCCESS', text: message_builder.skipping_text)
    message << "<br>"
    message << @instance.logs.last(2).first.message

    send_to_hipchat(message, color: 'yellow')
  end
end