Sha256: 7dfb1a56a42fe1d5e239b33ca6b18e84be5f98441e664c0e8359d76372e2f6f7

Contents?: true

Size: 1.95 KB

Versions: 12

Compression:

Stored size: 1.95 KB

Contents

require 'cmdparse'

module Spider; module Master

    class Cmd < ::CmdParse::Command

        def initialize
            super('master', true)
            
            update_averages = CmdParse::Command.new('averages', false )
            update_averages.short_desc = _("Update report averages")
            update_averages.options = CmdParse::OptionParserWrapper.new do |opt|
                opt.on("--instance id", _("Plugin instance id"), "-i"){ |i| @instance_id = i }
                opt.on("--server id", _("Server id"), "-s"){ |i| @server_id = i }
                opt.on("--type t", _("Average type (hour, day, week)"), "-t"){ |t| @type = t.to_sym }
                opt.on("--days n", _("Compute averages until n days ago"), "-d"){ |d| @days = d.to_i }
            end
            
            update_averages.set_execution_block do
                @days ||= 7
                @type ||= :hour
                instances = []
                unless @instance_id || @server_id
                    puts _("Please provide an instance id or a server id")
                    exit
                end
                if @instance_id
                    instances = [@instance_id]
                elsif @server_id
                    instances = ScoutPluginInstance.where{ |i| (i.servant == @server_id) }.map{ |i| i.id }
                # else
                #     instances = ScoutPluginInstance.all.map{ |i| i.id }
                end
                instances.each do |i|
                    update_averages(i, @days, @type)
                end
                    
            end
            self.add_command(update_averages)
            
            
            
        end
        
        def update_averages(instance_id, days_back, type= :hour)
            last = Date.today - days_back
            i = ScoutPluginInstance.new(instance_id)
            puts _("Updating averages for %s until #{last}") % i.to_s
            i.fields_to_averages(last, type)
        end

    end

 


end; end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
spiderfw-0.6.5 apps/master/cmd.rb
spiderfw-0.6.4 apps/master/cmd.rb
spiderfw-0.6.3 apps/master/cmd.rb
spiderfw-0.6.2 apps/master/cmd.rb
spiderfw-0.6.1 apps/master/cmd.rb
spiderfw-0.6.0 apps/master/cmd.rb
spiderfw-0.5.19 apps/master/cmd.rb
spiderfw-0.5.18 apps/master/cmd.rb
spiderfw-0.5.17 apps/master/cmd.rb
spiderfw-0.5.16 apps/master/cmd.rb
spiderfw-0.5.15 apps/master/cmd.rb
spiderfw-0.5.14 apps/master/cmd.rb