Add a purge sub and use it in gruntmaster-*
authorMarius Gavrilescu <marius@ieval.ro>
Fri, 19 Dec 2014 08:03:11 +0000 (10:03 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Fri, 19 Dec 2014 08:03:11 +0000 (10:03 +0200)
gruntmaster-contest
gruntmaster-job
gruntmaster-problem
lib/Gruntmaster/Data.pm

index 856faae6d7698fbc08b396ccb6f07defd7b92444..6b7810413ad8c4a2b012298b34e639c4584552ad 100755 (executable)
@@ -33,17 +33,21 @@ END
 }
 
 sub cmd_add{
-       my $id = shift;
+       my ($id) = @_;
        my $name = prompt 'Contest name';
        my $owner = prompt 'Owner';
        my $start = str2time prompt 'Start time' or die 'Cannot parse time';
        my $stop = str2time prompt 'Stop time' or die 'Cannot parse time';
 
-       $db->contests->create({id => $id, name => $name, owner => $owner, start => $start, stop => $stop})
+       $db->contests->create({id => $id, name => $name, owner => $owner, start => $start, stop => $stop});
+       purge '/ct/';
 }
 
 sub cmd_rm{
-       $db->contest(shift)->delete
+       my ($id) = @_;
+       $db->contest(shift)->delete;
+       purge '/ct/';
+       purge "/ct/$id";
 }
 
 sub cmd_get{
@@ -53,7 +57,9 @@ sub cmd_get{
 
 sub cmd_set{
        my ($id, %values) = @_;
-       $db->contest($id)->update(\%values)
+       $db->contest($id)->update(\%values);
+       purge '/ct/';
+       purge "/ct/$id";
 }
 
 ##################################################
index 06e3fe14d44edb51f091df1ad96b0a2a839da13e..47bb2ab301eb1ceb7472bd54375f6c4d087414eb 100755 (executable)
@@ -32,7 +32,10 @@ END
 }
 
 sub cmd_rm{
-       $db->job(shift)->delete
+       my ($id) = @_;
+       $db->job($id)->delete;
+       purge '/log/';
+       purge "/log/$id";
 }
 
 sub cmd_get{
@@ -42,11 +45,16 @@ sub cmd_get{
 
 sub cmd_set{
        my ($id, %values) = @_;
-       $db->job($id)->update(\%values)
+       $db->job($id)->update(\%values);
+       purge '/log/';
+       purge "/log/$id";
 }
 
 sub cmd_rerun{
-       $db->job(shift)->rerun
+       my ($id) = @_;
+       $db->job($id)->rerun;
+       purge '/log/';
+       purge "/log/$id";
 }
 
 ##################################################
index 5d18b2b7f22223c63f26ec42c70f5ff9ae1398ad..dac2e0237ce9d18d5d54b02bc6cc6a3e38107020 100755 (executable)
@@ -88,6 +88,7 @@ sub cmd_add{
        $db->problems->create (\%options);
 
        $db->contest_problems->create({problem => $id, contest => $contest}) if $contest;
+       purge '/pb/';
 }
 
 sub cmd_set{
@@ -95,7 +96,9 @@ sub cmd_set{
        GetOptions ( 'file!' => \$file );
        my ($id, %values) = @_;
        %values = map { $_ => scalar read_file $values{$_} } keys %values if $file;
-       $db->problem($id)->update(\%values)
+       $db->problem($id)->update(\%values);
+       purge '/pb/';
+       purge "/pb/$id";
 }
 
 sub cmd_get{
@@ -109,7 +112,10 @@ sub cmd_list{
 }
 
 sub cmd_rm{
-       $db->problem(shift)->delete
+       my ($id) = @_;
+       $db->problem($id)->delete;
+       purge '/pb/';
+       purge "/pb/$id";
 }
 
 sub cmd_show{
index 9d01418c062f08f94f9a39ef41bcf10fd872142c..e514970820e95cf2037c49806b0f7b23b13dd33e 100644 (file)
@@ -15,10 +15,13 @@ __PACKAGE__->load_namespaces;
 # Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-05 13:11:39
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dAEmtAexvUaNXLgYz2rNEg
 
+use parent qw/Exporter/;
 our $VERSION = '5999.000_012';
+our @EXPORT = qw/purge/;
 
 use Lingua::EN::Inflect qw/PL_N/;
 use JSON::MaybeXS qw/decode_json/;
+use HTTP::Tiny;
 use PerlX::Maybe qw/maybe/;
 use Sub::Name qw/subname/;
 
@@ -180,6 +183,12 @@ sub update_status {
        $self->txn_do($txn);
 }
 
+my @PURGE_HOSTS = exists $ENV{PURGE_HOSTS} ? split ' ', $ENV{PURGE_HOSTS} : ();
+my $ht = HTTP::Tiny->new;
+
+sub purge { $ht->request(PURGE => "http://$_$_[0]") for @PURGE_HOSTS }
+
+
 1;
 
 __END__
This page took 0.016142 seconds and 4 git commands to generate.