[PATCH] added new attribute checked_at to instance and changed dbomatic to iterate instances using this attribute

Jan Provaznik jprovazn at redhat.com
Tue Sep 4 14:27:38 UTC 2012


On 09/04/2012 03:40 PM, Tomáš Hrčka wrote:
> ---
>   src/db/migrate/20120904073451_add_checked_at_to_instance.rb | 9 +++++++++
>   src/dbomatic/dbomatic                                       | 6 ++++--
>   2 files changed, 13 insertions(+), 2 deletions(-)
>   create mode 100644 src/db/migrate/20120904073451_add_checked_at_to_instance.rb
>
> diff --git a/src/db/migrate/20120904073451_add_checked_at_to_instance.rb b/src/db/migrate/20120904073451_add_checked_at_to_instance.rb
> new file mode 100644
> index 0000000..29b218a
> --- /dev/null
> +++ b/src/db/migrate/20120904073451_add_checked_at_to_instance.rb
> @@ -0,0 +1,9 @@
> +class AddCheckedAtToInstance < ActiveRecord::Migration
> +  def self.up
> +    add_column :instances, :checked_at, :datetime, :null => false, :default => Time.now
> +  end
> +
> +  def self.down
> +    remove_column :instances, :checked_at
> +  end
> +end
> diff --git a/src/dbomatic/dbomatic b/src/dbomatic/dbomatic
> index 76fadf6..a8633a0 100755
> --- a/src/dbomatic/dbomatic
> +++ b/src/dbomatic/dbomatic
> @@ -33,7 +33,7 @@ dbomatic_pid_dir = "/var/run/aeolus-conductor"
>   # $dbomatic_timeout is also our polling interval between cloud status checks
>   $dbomatic_timeout = 60
>   $realms_timeout = 300
> -$deltacloud_timeout = 30
> +$deltacloud_timeout = 50
>   optparse = OptionParser.new do |opts|
>
>     opts.banner = <<BANNER
> @@ -189,10 +189,12 @@ end
>   def check_one_account(account)
>     connection = account.connect
>
> -  account.instances.each do |instance|
> +  account.instances.order("checked_at ASC").each do |instance|
>       # optimization; right now we ignore instances that are in the STOPPED, NEW, or CREATE_FAILED states.
>       # when we get to stateful instances, this will need to change
>       unless [Instance::STATE_NEW, Instance::STATE_STOPPED, Instance::STATE_CREATE_FAILED].include?(instance.state)
> +      instance.update_attribute(:checked_at,Time.now)
> +
>         begin
>           api_instance = connection.instance(instance.external_key)
>         rescue Exception => e
>

ACK



More information about the aeolus-devel mailing list