lib/knife-spork/plugins/eventinator.rb in knife-spork-1.7.2 vs lib/knife-spork/plugins/eventinator.rb in knife-spork-1.7.3

- old
+ new

@@ -1,329 +1,329 @@ -require 'knife-spork/plugins/plugin' -require 'json' -require 'uri' - -module KnifeSpork - module Plugins - class Eventinator < Plugin - name :eventinator - - def perform; end - - def after_upload - cookbooks.each do |cookbook| - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} uploaded and froze #{cookbook.name}@#{cookbook.version}", - :metadata => { - :cookbook_name => cookbook.name, - :cookbook_version => cookbook.version - }.to_json - } - eventinate(event_data) - end - end - - def after_delete - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} deleted the following cookbooks: #{misc_output}", - :metadata => { - :deleted_cookbooks => misc_output - }.to_json - } - eventinate(event_data) - end - - def after_promote_remote - environments.each do |environment| - cookbooks.each do |cookbook| - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} promoted #{cookbook.name}(#{cookbook.version}) to #{environment.name}", - :metadata => { - :cookbook_name => cookbook.name, - :cookbook_version => cookbook.version - }.to_json - } - eventinate(event_data) - end - end - end - - def after_environmentfromfile - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} uploaded environment #{object_name}", - :metadata => { - :environment_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_environmentedit - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} edited environment #{object_name}", - :metadata => { - :environment_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_environmentcreate - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} created environment #{object_name}", - :metadata => { - :environment_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_environmentdelete - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} deleted environment #{object_name}", - :metadata => { - :environment_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_rolefromfile - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} uploaded role #{object_name}", - :metadata => { - :role_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_roleedit - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} edited role #{object_name}", - :metadata => { - :role_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_rolecreate - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} created role #{object_name}", - :metadata => { - :role_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_roledelete - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} deleted role #{object_name}", - :metadata => { - :role_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_databagedit - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} edited data bag item #{object_name}:#{object_secondary_name}", - :metadata => { - :databag_name => object_name, - :databag_item => object_secondary_name, - }.to_json - } - eventinate(event_data) - end - - def after_databagcreate - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} created data bag #{object_name}", - :metadata => { - :databag_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_databagdelete - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} deleted data bag item #{object_name}", - :metadata => { - :databag_name => object_name, - }.to_json - } - eventinate(event_data) - end - - def after_databagitemdelete - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} deleted data bag item #{object_name}:#{object_secondary_name}", - :metadata => { - :databag_name => object_name, - :databag_item => object_secondary_name, - }.to_json - } - eventinate(event_data) - end - - def after_databagfromfile - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} uploaded data bag item #{object_name}:#{object_secondary_name}", - :metadata => { - :databag_name => object_name, - :databag_item => object_secondary_name, - }.to_json - } - eventinate(event_data) - end - - def after_nodeedit - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} edited node #{object_name}", - :metadata => { - :node_name => object_name - }.to_json - } - eventinate(event_data) - end - - def after_nodedelete - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} deleted node #{object_name}", - :metadata => { - :node_name => object_name - }.to_json - } - eventinate(event_data) - end - - def after_nodecreate - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} created node #{object_name}", - :metadata => { - :node_name => object_name - }.to_json - } - eventinate(event_data) - end - - def after_nodefromfile - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} uploaded node #{object_name}", - :metadata => { - :node_name => object_name - }.to_json - } - eventinate(event_data) - end - - def after_noderunlistadd - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} added run_list items to #{object_name}: #{object_secondary_name}", - :metadata => { - :node_name => object_name, - :run_list_items => object_secondary_name, - }.to_json - } - eventinate(event_data) - end - - def after_noderunlistremove - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} removed run_list items from #{object_name}: #{object_secondary_name}", - :metadata => { - :node_name => object_name, - :run_list_items => object_secondary_name, - }.to_json - } - eventinate(event_data) - end - - def after_noderunlistset - event_data = { - :tag => 'knife', - :username => current_user, - :status => "#{organization}#{current_user} set the run_list for #{object_name} to #{object_secondary_name}", - :metadata => { - :node_name => object_name, - :run_list_items => object_secondary_name, - }.to_json - } - eventinate(event_data) - end - - def eventinate(event_data) - begin - uri = URI.parse(config.url) - rescue Exception => e - ui.error 'Could not parse URI for Eventinator.' - ui.error e.to_s - return - end - - http = Net::HTTP.new(uri.host, uri.port) - http.read_timeout = config.read_timeout || 5 - - request = Net::HTTP::Post.new(uri.request_uri) - request.set_form_data(event_data) - - begin - response = http.request(request) - ui.error "Eventinator at #{config.url} did not receive a good response from the server" if response.code != '200' - rescue Timeout::Error - ui.error "Eventinator timed out connecting to #{config.url}. Is that URL accessible?" - rescue Exception => e - ui.error 'Eventinator error.' - ui.error e.to_s - end - end - end - end -end +require 'knife-spork/plugins/plugin' +require 'json' +require 'uri' + +module KnifeSpork + module Plugins + class Eventinator < Plugin + name :eventinator + + def perform; end + + def after_upload + cookbooks.each do |cookbook| + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} uploaded and froze #{cookbook.name}@#{cookbook.version}", + :metadata => { + :cookbook_name => cookbook.name, + :cookbook_version => cookbook.version + }.to_json + } + eventinate(event_data) + end + end + + def after_delete + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} deleted the following cookbooks: #{misc_output}", + :metadata => { + :deleted_cookbooks => misc_output + }.to_json + } + eventinate(event_data) + end + + def after_promote_remote + environments.each do |environment| + cookbooks.each do |cookbook| + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} promoted #{cookbook.name}(#{cookbook.version}) to #{environment.name}", + :metadata => { + :cookbook_name => cookbook.name, + :cookbook_version => cookbook.version + }.to_json + } + eventinate(event_data) + end + end + end + + def after_environmentfromfile + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} uploaded environment #{object_name}", + :metadata => { + :environment_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_environmentedit + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} edited environment #{object_name}", + :metadata => { + :environment_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_environmentcreate + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} created environment #{object_name}", + :metadata => { + :environment_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_environmentdelete + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} deleted environment #{object_name}", + :metadata => { + :environment_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_rolefromfile + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} uploaded role #{object_name}", + :metadata => { + :role_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_roleedit + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} edited role #{object_name}", + :metadata => { + :role_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_rolecreate + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} created role #{object_name}", + :metadata => { + :role_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_roledelete + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} deleted role #{object_name}", + :metadata => { + :role_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_databagedit + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} edited data bag item #{object_name}:#{object_secondary_name}", + :metadata => { + :databag_name => object_name, + :databag_item => object_secondary_name, + }.to_json + } + eventinate(event_data) + end + + def after_databagcreate + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} created data bag #{object_name}", + :metadata => { + :databag_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_databagdelete + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} deleted data bag item #{object_name}", + :metadata => { + :databag_name => object_name, + }.to_json + } + eventinate(event_data) + end + + def after_databagitemdelete + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} deleted data bag item #{object_name}:#{object_secondary_name}", + :metadata => { + :databag_name => object_name, + :databag_item => object_secondary_name, + }.to_json + } + eventinate(event_data) + end + + def after_databagfromfile + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} uploaded data bag item #{object_name}:#{object_secondary_name}", + :metadata => { + :databag_name => object_name, + :databag_item => object_secondary_name, + }.to_json + } + eventinate(event_data) + end + + def after_nodeedit + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} edited node #{object_name}", + :metadata => { + :node_name => object_name + }.to_json + } + eventinate(event_data) + end + + def after_nodedelete + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} deleted node #{object_name}", + :metadata => { + :node_name => object_name + }.to_json + } + eventinate(event_data) + end + + def after_nodecreate + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} created node #{object_name}", + :metadata => { + :node_name => object_name + }.to_json + } + eventinate(event_data) + end + + def after_nodefromfile + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} uploaded node #{object_name}", + :metadata => { + :node_name => object_name + }.to_json + } + eventinate(event_data) + end + + def after_noderunlistadd + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} added run_list items to #{object_name}: #{object_secondary_name}", + :metadata => { + :node_name => object_name, + :run_list_items => object_secondary_name, + }.to_json + } + eventinate(event_data) + end + + def after_noderunlistremove + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} removed run_list items from #{object_name}: #{object_secondary_name}", + :metadata => { + :node_name => object_name, + :run_list_items => object_secondary_name, + }.to_json + } + eventinate(event_data) + end + + def after_noderunlistset + event_data = { + :tag => 'knife', + :username => current_user, + :status => "#{organization}#{current_user} set the run_list for #{object_name} to #{object_secondary_name}", + :metadata => { + :node_name => object_name, + :run_list_items => object_secondary_name, + }.to_json + } + eventinate(event_data) + end + + def eventinate(event_data) + begin + uri = URI.parse(config.url) + rescue Exception => e + ui.error 'Could not parse URI for Eventinator.' + ui.error e.to_s + return + end + + http = Net::HTTP.new(uri.host, uri.port) + http.read_timeout = config.read_timeout || 5 + + request = Net::HTTP::Post.new(uri.request_uri) + request.set_form_data(event_data) + + begin + response = http.request(request) + ui.error "Eventinator at #{config.url} did not receive a good response from the server" if response.code != '200' + rescue Timeout::Error + ui.error "Eventinator timed out connecting to #{config.url}. Is that URL accessible?" + rescue Exception => e + ui.error 'Eventinator error.' + ui.error e.to_s + end + end + end + end +end