Sha256: 4039033f3092cba65672affef9ffc13746067b513da4aa99e001c938640136f6

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 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: " + request.inspect)
        
        http = Net::HTTP.new(url.host, url.port)
        http.use_ssl = false
        resp = http.request(request)
        log.debug("Google 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? or 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

1 entries across 1 versions & 1 rubygems

Version Path
BibOpsworks-0.1.2 lib/bib/opsworks/google.rb