start lifting job manager over from free factories to crunch
[arvados.git] / sdk / perl / lib / Arvados / ResourceProxy.pm
1 package Arvados::ResourceProxy;
2
3 sub new
4 {
5     my $class = shift;
6     my $self = shift;
7     $self->{'resourceAccessor'} = shift;
8     bless ($self, $class);
9     $self;
10 }
11
12 sub save
13 {
14     my $self = shift;
15     $response = $self->{'resourceAccessor'}->{'update'}->execute('uuid' => $self->{'uuid'}, $self->resource_parameter_name() => $self);
16     foreach my $param (keys %$self) {
17         if (exists $response->{$param}) {
18             $self->{$param} = $response->{$param};
19         }
20     }
21     $self;
22 }
23
24 sub reload
25 {
26     my $self = shift;
27     $response = $self->{'resourceAccessor'}->{'get'}->execute('uuid' => $self->{'uuid'});
28     foreach my $param (keys %$self) {
29         if (exists $response->{$param}) {
30             $self->{$param} = $response->{$param};
31         }
32     }
33     $self;
34 }
35
36 sub resource_parameter_name
37 {
38     my $self = shift;
39     my $pname = $self->{'resourceAccessor'}->{'resourcesName'};
40     $pname =~ s/s$//;           # XXX not a very good singularize()
41     $pname;
42 }
43
44 1;