3 Arvados -- client library for Arvados services
8 $arv = Arvados->new(apiHost => 'arvados.local');
10 my $instances = $arv->{'pipeline_instances'}->{'list'}->execute();
11 print "UUID is ", $instances->{'items'}->[0]->{'uuid'}, "\n";
13 $uuid = 'eiv0u-arx5y-2c5ovx43zw90gvh';
14 $instance = $arv->{'pipeline_instances'}->{'get'}->execute('uuid' => $uuid);
15 print "ETag is ", $instance->{'etag'}, "\n";
17 $instance->{'active'} = 1;
18 $instance->{'name'} = '';
20 print "ETag is ", $instance->{'etag'}, "\n";
26 my $whc = Arvados->new( %OPTIONS );
28 Set up a client and retrieve the schema from the server.
36 Hostname of API discovery service. Default: C<ARVADOS_API_HOST>
37 environment variable, or C<arvados>
39 =item apiProtocolScheme
41 Protocol scheme. Default: C<ARVADOS_API_PROTOCOL_SCHEME> environment
46 Authorization token. Default: C<ARVADOS_API_TOKEN> environment variable
65 use Arvados::ResourceAccessor;
66 use Arvados::ResourceMethod;
67 use Arvados::ResourceProxy;
68 use Arvados::ResourceProxyList;
71 $Arvados::VERSION = 0.1;
78 bless ($self, $class);
79 return $self->build(@_);
85 $self->{'authToken'} ||= $ENV{'ARVADOS_API_TOKEN'};
86 $self->{'apiHost'} ||= $ENV{'ARVADOS_API_HOST'};
87 $self->{'apiProtocolScheme'} ||= $ENV{'ARVADOS_API_PROTOCOL_SCHEME'};
89 $self->{'ua'} = new Arvados::Request;
91 my $host = $self->{'apiHost'} || 'arvados';
92 my $service = $self->{'apiService'} || 'arvados';
93 my $version = $self->{'apiVersion'} || 'v1';
94 my $scheme = $self->{'apiProtocolScheme'} || 'https';
95 my $uri = "$scheme://$host/discovery/v1/apis/$service/$version/rest";
96 my $r = $self->new_request;
98 $r->set_method("GET");
99 $r->process_request();
101 my ($status_number, $status_phrase) = $r->get_status();
102 $data = $r->get_body() if $status_number == 200;
103 $headers = $r->get_headers();
105 my $doc = $self->{'discoveryDocument'} = JSON::decode_json($data);
106 print STDERR Dumper $doc if $ENV{'DEBUG_ARVADOS_API_DISCOVERY'};
108 while (($k, $v) = each %{$doc->{'resources'}}) {
109 $self->{$k} = Arvados::ResourceAccessor->new($self, $k);
112 croak "No discovery doc at $uri - $status_number $status_phrase";
120 local $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'};
121 if ($opts{'noVerifyHostname'} || ($host =~ /\.local$/)) {
122 $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
124 Arvados::Request->new();