[Ovirt-devel] [PATCH server] (Legit) Add audit trl for hosts join/leaving hwpools w/Rails observer class

Scott Seago sseago at redhat.com
Fri Jan 9 22:33:41 UTC 2009


Steve Linabery wrote:
> Modify graph_controller.rb to utilize new audit feature when generating data for flexchart
> ---
>  src/app/controllers/graph_controller.rb    |   64 +++++++++++++++++++++++++--
>  src/app/models/hardware_pool.rb            |    2 +-
>  src/app/models/host.rb                     |    9 ++++
>  src/app/models/host_observer.rb            |   47 ++++++++++++++++++++
>  src/app/models/membership_audit_event.rb   |   26 +++++++++++
>  src/app/models/pool.rb                     |    1 +
>  src/config/environment.rb                  |    2 +-
>  src/db/migrate/033_add_pool_audit_trail.rb |   44 +++++++++++++++++++
>  8 files changed, 188 insertions(+), 7 deletions(-)
>  create mode 100644 src/app/models/host_observer.rb
>  create mode 100644 src/app/models/membership_audit_event.rb
>  create mode 100644 src/db/migrate/033_add_pool_audit_trail.rb
>
> diff --git a/src/db/migrate/033_add_pool_audit_trail.rb b/src/db/migrate/033_add_pool_audit_trail.rb
> new file mode 100644
> index 0000000..d4b4338
> --- /dev/null
> +++ b/src/db/migrate/033_add_pool_audit_trail.rb
> @@ -0,0 +1,44 @@
> +class AddPoolAuditTrail < ActiveRecord::Migration
> +  def self.up
> +    create_table :membership_audit_events do |t|
> +      t.timestamp :created_at
> +      t.string :action
> +      t.integer :container_target_id
> +      t.string :container_target_type
> +      t.integer :member_target_id
> +      t.string :member_target_type
> +      t.integer :lock_version, :default => 0
> +    end
> +
> +    Host.transaction do
> +      Host.find(:all).each do |host|
> +
> +        if (! host.membership_audit_events)
>   
This line needs to be changed to

	if (host.membership_audit_events.empty?)

> +          event = MembershipAuditEvent.new(:action => MembershipAuditEvent::JOIN,
> +                                           :container_target => host.hardware_pool,
> +                                           :member_target => host)
> +          event.save!
> +        end
> +      end
> +    end
> +  end
> +end
>   
You should also probably write the self.down action to remove the table 
if a downgrade is attempted.

But other than these two migration issues, ACK -- seems to work fine for me.

Scott




More information about the ovirt-devel mailing list