[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