web/modules/sniglets/Sniglets/ListView/SystemList.pm | 49 +++++++++++++++++++
1 file changed, 49 insertions(+)
New commits:
commit 8a6eb6ae2d076436acc1adb445299efaaafbc434
Author: Jan Pazdziora <jpazdziora(a)redhat.com>
Date: Wed Nov 21 10:35:25 2012 +0100
Revert "removed dead query"
This reverts part of commit 719a2c75fdb8c31f16011a17aa9923a23abf6d63.
The provisioning_systems_in_set_with_tag mode is still used.
diff --git a/web/modules/sniglets/Sniglets/ListView/SystemList.pm
b/web/modules/sniglets/Sniglets/ListView/SystemList.pm
index f9ec15a..d0f46e4 100644
--- a/web/modules/sniglets/Sniglets/ListView/SystemList.pm
+++ b/web/modules/sniglets/Sniglets/ListView/SystemList.pm
@@ -62,6 +62,10 @@ sub _register_modes {
-datasource => RHN::DataSource::System->new,
-action_callback => \&ssm_remote_command_action_cb);
+ Sniglets::ListView::List->add_mode(-mode =>
"provisioning_systems_in_set_with_tag",
+ -datasource => RHN::DataSource::System->new,
+ -action_callback => \&ssm_rollback_by_tag_action_cb);
+
Sniglets::ListView::List->add_mode(-mode => "visible_to_user",
-datasource => RHN::DataSource::System->new);
commit 5bba7e3272762466e021a03e556d7e587c2888fd
Author: Jan Pazdziora <jpazdziora(a)redhat.com>
Date: Wed Nov 21 10:33:12 2012 +0100
Revert "The ssm_rollback_by_tag_action_cb method no longer referenced,
removing."
This reverts commit dc0fa1edb36499117ad68d36e3de2ea7c9a5f59a since
we will be reverting 719a2c75fdb8c31f16011a17aa9923a23abf6d63 as well.
diff --git a/web/modules/sniglets/Sniglets/ListView/SystemList.pm
b/web/modules/sniglets/Sniglets/ListView/SystemList.pm
index b23cf9a..f9ec15a 100644
--- a/web/modules/sniglets/Sniglets/ListView/SystemList.pm
+++ b/web/modules/sniglets/Sniglets/ListView/SystemList.pm
@@ -391,6 +391,51 @@ sub ssm_remote_command_action_cb {
return 1;
}
+sub ssm_rollback_by_tag_action_cb {
+ my $self = shift;
+ my $pxt = shift;
+
+ my %action = @_;
+
+ my $label = '';
+
+ if (exists $action{label} and $action{label} eq 'rollback_systems') {
+
+ my $tag_id = $pxt->param('tag_id');
+ my $ds = new RHN::DataSource::System (-mode =>
'provisioning_systems_in_set_with_tag');
+ my $data = $ds->execute_query(-user_id => $pxt->user->id, -tag_id =>
$tag_id);
+
+ my $transaction = RHN::DB->connect();
+
+ eval {
+ foreach my $server_data (@{$data}) {
+
+ my $sid = $server_data->{ID};
+ my $snapshot_id = $server_data->{SNAPSHOT_ID};
+
+ my %results = RHN::SystemSnapshot->rollback_to_snapshot(user_id =>
$pxt->user->id,
+ org_id => $pxt->user->org_id,
+ server_id => $sid,
+ snapshot_id => $snapshot_id,
+ transaction => $transaction,
+ );
+ $transaction = $results{transaction};
+ }
+ };
+
+ if ($@) {
+ my $E = $@;
+ $transaction->rollback();
+ die $E;
+ }
+ else {
+ $pxt->push_message(site_info => "Rollbacks scheduled.");
+ $pxt->redirect("/network/systems/ssm/provisioning/rollback.pxt");
+ }
+ }
+
+ return 1;
+}
sub selected_systems_installed_package_provider {
my $self = shift;
Show replies by date