[Ovirt-devel] [PATCH] Solve update problems Thanks to Thibault Deloffre <tdeloffre at linagora.com>

Arthur Clément aclement at linagora.com
Wed Aug 18 13:49:23 UTC 2010


Pushed (Tue Jul 20)

On mardi 20 juillet 2010 17:53:09 Arthur Clement wrote:
> Patch in production for six months
> 
> Signed-off-by: Arthur Clement <aclement at linagora.com>
> ---
>  src/host-collect/host-collect.rb |   79
> ++++++++++++++++++++++---------------- 1 files changed, 46 insertions(+),
> 33 deletions(-)
> 
> diff --git a/src/host-collect/host-collect.rb
> b/src/host-collect/host-collect.rb index 1694191..b3abca8 100755
> --- a/src/host-collect/host-collect.rb
> +++ b/src/host-collect/host-collect.rb
> @@ -1,7 +1,7 @@
>  #!/usr/bin/ruby
>  #
> -# Copyright (C) 2008 Red Hat, Inc.
> -# Written by Ian Main <imain at redhat.com>
> +#1;2000;0c Copyright (C) 2008 Red Hat, Inc.
> +#1;2000;0c Written by Ian Main <imain at redhat.com>
>  #
>  # This program is free software; you can redistribute it and/or modify
>  # it under the terms of the GNU General Public License as published by
> @@ -55,14 +55,17 @@ if do_daemon
>    daemonize
>  end
> 
> -f = UNIXSocket.new("/var/lib/collectd/unixsock")
> 
>  database_connect
> 
>  loop do
> +  f = UNIXSocket.new("/var/lib/collectd/unixsock")
> +
>    f.write("LISTVAL\n")
> +  puts("****** SOCKET asked ******")
> 
>    count = f.gets
> +  puts("****** SOCKET return #{count} ******")
>    count = count.to_i
> 
>    vals = []
> @@ -71,39 +74,49 @@ loop do
>      vals.push(value)
>      count = count - 1
>    end
> -
> -  for val in vals do
> -    timestamp, keystring = val.split(" ")
> -
> -    hostname,plugin,type = keystring.split("/")
> -
> -    if plugin == "load" and type == "load"
> -      f.write("GETVAL #{keystring}\n")
> -      valuestring = f.gets
> -
> -      values = valuestring.split("=")
> -      if values.length != 4
> -        puts("GACK! Should have 4 values for load")
> -        next
> -      end
> -      short = values[1].to_f
> -      med = values[2].to_f
> -      long = values[3].to_f
> -
> -      # You only see this in non-daemon mode..
> -      puts("hostname: #{hostname} --> short: #{short}, med: #{med}, long:
> #{long}") -
> -      # We have our values now, just need to update the db.
> -      host = Host.find(:first, :conditions => [ "hostname = ?", hostname])
> -      if host == nil
> -        puts("GACK! No such host in database: #{hostname}")
> -      else
> -        host.load_average = med
> -        host.save
> +
> +  if (vals.length > 0)
> +    for val in vals do
> +      timestamp, keystring = val.split(" ")
> +
> +      hostname,plugin,type = keystring.split("/")
> +
> +      if plugin == "load" and type == "load"
> +        puts("KEYSTRING -> #{keystring}")
> +        f.write("GETVAL #{keystring}\n")
> +        valuestring = f.gets
> +        3.times {
> +          valuestring += f.gets
> +        }
> +
> +        puts(" ------------------- VALUESTRING:: #{valuestring}")
> +        values = valuestring.split("=")
> +        if values.length != 4
> +          puts("GACK! Should have 4 values for load")
> +          next
> +        end
> +        short = values[1].to_f
> +        med = values[2].to_f
> +        long = values[3].to_f
> +
> +        # You only see this in non-daemon mode..
> +        puts("hostname: #{hostname} --> short: #{short}, med: #{med},
> long: #{long}") +
> +        # We have our values now, just need to update the db.
> +        host = Host.find(:first, :conditions => [ "hostname = ?",
> hostname]) +        if host == nil
> +          puts("GACK! No such host in database: #{hostname}")
> +        else
> +          host.load_average = short
> +          host.save
> +
> +        end
>        end
>      end
>    end
> -
> +
> +  puts("****** SLEEP ******")
> +  f.close
>    sleep sleeptime
> 
>  end
-- 
Arthur CLEMENT
Linagora Paris




More information about the ovirt-devel mailing list