Sha256: d5169857c2646420133ad2f35209bebca63033b96c1e674a4838a2579cdd701b

Contents?: true

Size: 1.49 KB

Versions: 5

Compression:

Stored size: 1.49 KB

Contents

require 'net/http'

module Bib
  module Opsworks
    class Google
      include Logging

      def publish_deployment(app_name, deploy_data, google_ident)
        google_params = prepare_publishing_data(app_name, deploy_data)

        label = "#{google_params['deployment[user]']}-#{google_params['deployment[revision]']}"
        query = "tid=#{google_ident}&ea=#{app_name}&el=#{label}"
        google_url = "http://www.google-analytics.com/collect?v=1&cid=555&t=event&ec=deployment&#{query}"
        url = URI.parse(google_url)

        request = Net::HTTP::Get.new(url.request_uri)
        log.debug('Google Analytics: sending data: ' + google_url)

        http = Net::HTTP.new(url.host, url.port)
        http.use_ssl = false
        resp = http.request(request)
        log.debug('Google Analytics Response: ' + resp.code + ' ' + resp.message)
        resp.is_a? Net::HTTPSuccess
      end

      def prepare_publishing_data(app_name, deploy_data)
        scm_revision = deploy_data['scm']['revision']

        if deploy_data['deploying_user'].nil? || deploy_data['deploying_user'].empty?
          deployment_user = 'opsworks'
        else
          deployment_user = deploy_data['deploying_user'].split('/')[1]
        end

        google_params = {}
        {
          app_name: app_name,
          user: deployment_user,
          revision: scm_revision
        }.each do |k, v|
          google_params["deployment[#{k}]"] = v unless v.nil? || v == ''
        end
        google_params
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
BibOpsworks-0.1.7 lib/bib/opsworks/google.rb
BibOpsworks-0.1.6 lib/bib/opsworks/google.rb
BibOpsworks-0.1.5 lib/bib/opsworks/google.rb
BibOpsworks-0.1.4 lib/bib/opsworks/google.rb
BibOpsworks-0.1.3 lib/bib/opsworks/google.rb