restfully 0.6.3 → 0.7.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +166 -0
- data/Rakefile +35 -35
- data/bin/restfully +68 -10
- data/lib/restfully.rb +8 -14
- data/lib/restfully/collection.rb +70 -90
- data/lib/restfully/error.rb +2 -0
- data/lib/restfully/http.rb +3 -3
- data/lib/restfully/http/error.rb +1 -20
- data/lib/restfully/http/helper.rb +49 -0
- data/lib/restfully/http/request.rb +60 -24
- data/lib/restfully/http/response.rb +55 -24
- data/lib/restfully/link.rb +32 -24
- data/lib/restfully/media_type.rb +70 -0
- data/lib/restfully/media_type/abstract_media_type.rb +162 -0
- data/lib/restfully/media_type/application_json.rb +21 -0
- data/lib/restfully/media_type/application_vnd_bonfire_xml.rb +177 -0
- data/lib/restfully/media_type/application_x_www_form_urlencoded.rb +33 -0
- data/lib/restfully/media_type/grid5000.rb +67 -0
- data/lib/restfully/media_type/wildcard.rb +27 -0
- data/lib/restfully/rack.rb +1 -0
- data/lib/restfully/rack/basic_auth.rb +26 -0
- data/lib/restfully/resource.rb +134 -197
- data/lib/restfully/session.rb +127 -70
- data/lib/restfully/version.rb +3 -0
- data/spec/fixtures/bonfire-collection-with-fragments.xml +6 -0
- data/spec/fixtures/bonfire-compute-existing.xml +43 -0
- data/spec/fixtures/bonfire-empty-collection.xml +4 -0
- data/spec/fixtures/bonfire-experiment-collection.xml +51 -0
- data/spec/fixtures/bonfire-network-collection.xml +35 -0
- data/spec/fixtures/bonfire-network-existing.xml +6 -0
- data/spec/fixtures/bonfire-root.xml +5 -0
- data/spec/fixtures/grid5000-rennes-jobs.json +988 -146
- data/spec/fixtures/grid5000-rennes.json +63 -0
- data/spec/restfully/collection_spec.rb +87 -0
- data/spec/restfully/http/helper_spec.rb +18 -0
- data/spec/restfully/http/request_spec.rb +97 -0
- data/spec/restfully/http/response_spec.rb +53 -0
- data/spec/restfully/link_spec.rb +80 -0
- data/spec/restfully/media_type/application_vnd_bonfire_xml_spec.rb +153 -0
- data/spec/restfully/media_type_spec.rb +117 -0
- data/spec/restfully/resource_spec.rb +109 -0
- data/spec/restfully/session_spec.rb +229 -0
- data/spec/spec_helper.rb +10 -9
- metadata +162 -83
- data/.document +0 -5
- data/CHANGELOG +0 -62
- data/README.rdoc +0 -146
- data/TODO.rdoc +0 -3
- data/VERSION +0 -1
- data/examples/grid5000.rb +0 -33
- data/examples/scratch.rb +0 -37
- data/lib/restfully/extensions.rb +0 -34
- data/lib/restfully/http/adapters/abstract_adapter.rb +0 -29
- data/lib/restfully/http/adapters/patron_adapter.rb +0 -16
- data/lib/restfully/http/adapters/rest_client_adapter.rb +0 -75
- data/lib/restfully/http/headers.rb +0 -20
- data/lib/restfully/parsing.rb +0 -66
- data/lib/restfully/special_array.rb +0 -5
- data/lib/restfully/special_hash.rb +0 -5
- data/restfully.gemspec +0 -114
- data/spec/collection_spec.rb +0 -120
- data/spec/fixtures/configuration_file.yml +0 -4
- data/spec/fixtures/grid5000-sites.json +0 -540
- data/spec/http/error_spec.rb +0 -18
- data/spec/http/headers_spec.rb +0 -17
- data/spec/http/request_spec.rb +0 -49
- data/spec/http/response_spec.rb +0 -19
- data/spec/http/rest_client_adapter_spec.rb +0 -35
- data/spec/link_spec.rb +0 -61
- data/spec/parsing_spec.rb +0 -40
- data/spec/resource_spec.rb +0 -320
- data/spec/restfully_spec.rb +0 -16
- data/spec/session_spec.rb +0 -171
data/lib/restfully/session.rb
CHANGED
@@ -1,96 +1,153 @@
|
|
1
|
-
require 'uri'
|
2
1
|
require 'logger'
|
3
|
-
require '
|
2
|
+
require 'uri'
|
3
|
+
require 'restclient'
|
4
|
+
require 'restclient/components'
|
5
|
+
require 'rack/cache'
|
6
|
+
require 'addressable/uri'
|
4
7
|
|
5
8
|
module Restfully
|
6
|
-
class NullLogger
|
7
|
-
def method_missing(method, *args)
|
8
|
-
nil
|
9
|
-
end
|
10
|
-
end
|
11
9
|
class Session
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
|
11
|
+
|
12
|
+
attr_accessor :logger, :uri
|
13
|
+
attr_reader :config
|
14
|
+
attr_writer :default_headers
|
15
|
+
|
15
16
|
def initialize(options = {})
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
@config = options.symbolize_keys
|
18
|
+
@logger = @config.delete(:logger) || Logger.new(STDERR)
|
19
|
+
|
20
|
+
@uri = @config.delete(:uri)
|
21
|
+
if @uri.nil? || @uri.empty?
|
22
|
+
raise ArgumentError, "You must pass a :uri option."
|
23
|
+
else
|
24
|
+
@uri = Addressable::URI.parse(@uri)
|
20
25
|
end
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
|
27
|
+
default_headers.merge!(@config.delete(:default_headers) || {})
|
28
|
+
|
29
|
+
disable RestClient::Rack::Compatibility
|
30
|
+
authenticate(@config)
|
31
|
+
setup_cache
|
32
|
+
|
33
|
+
yield root, self if block_given?
|
34
|
+
end
|
35
|
+
|
36
|
+
def enable(rack, *args)
|
37
|
+
logger.info "Enabling #{rack.inspect}."
|
38
|
+
RestClient.enable rack, *args
|
39
|
+
end
|
40
|
+
|
41
|
+
def disable(rack, *args)
|
42
|
+
logger.info "Disabling #{rack.inspect}."
|
43
|
+
RestClient.disable rack, *args
|
44
|
+
end
|
45
|
+
|
46
|
+
def middleware
|
47
|
+
RestClient.components.map{|(rack, args)| rack}
|
48
|
+
end
|
49
|
+
|
50
|
+
def authenticate(options = {})
|
51
|
+
if options[:username]
|
52
|
+
enable(
|
53
|
+
Restfully::Rack::BasicAuth,
|
54
|
+
options[:username],
|
55
|
+
options[:password]
|
56
|
+
)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Builds the complete URI, based on the given path and the session's uri
|
61
|
+
def uri_to(path)
|
62
|
+
Addressable::URI.join(uri.to_s, path.to_s)
|
63
|
+
end
|
64
|
+
|
65
|
+
def default_headers
|
66
|
+
@default_headers ||= {
|
67
|
+
'Accept' => '*/*',
|
68
|
+
'Accept-Encoding' => 'gzip, deflate'
|
69
|
+
}
|
70
|
+
end
|
71
|
+
|
33
72
|
def root
|
34
|
-
|
73
|
+
get(uri.path).load
|
35
74
|
end
|
36
|
-
|
37
|
-
#
|
75
|
+
|
76
|
+
# Returns an HTTP::Response object or raise a Restfully::HTTP::Error
|
38
77
|
def head(path, options = {})
|
39
|
-
|
40
|
-
transmit :head, HTTP::Request.new(uri_for(path), :headers => options.delete(:headers), :query => options.delete(:query))
|
78
|
+
transmit :head, path, options
|
41
79
|
end
|
42
|
-
|
43
|
-
#
|
80
|
+
|
81
|
+
# Returns an HTTP::Response object or raise a Restfully::HTTP::Error
|
44
82
|
def get(path, options = {})
|
45
|
-
|
46
|
-
transmit :get, HTTP::Request.new(uri_for(path), :headers => options.delete(:headers), :query => options.delete(:query))
|
83
|
+
transmit :get, path, options
|
47
84
|
end
|
48
|
-
|
49
|
-
#
|
85
|
+
|
86
|
+
# Returns an HTTP::Response object or raise a Restfully::HTTP::Error
|
50
87
|
def post(path, body, options = {})
|
51
|
-
options =
|
52
|
-
|
53
|
-
transmit :post, HTTP::Request.new(uri_for(path), :body => body, :headers => options.delete(:headers), :query => options.delete(:query))
|
88
|
+
options[:body] = body
|
89
|
+
transmit :post, path, options
|
54
90
|
end
|
55
|
-
|
56
|
-
#
|
91
|
+
|
92
|
+
# Returns an HTTP::Response object or raise a Restfully::HTTP::Error
|
57
93
|
def put(path, body, options = {})
|
58
|
-
options =
|
59
|
-
|
60
|
-
transmit :put, HTTP::Request.new(uri_for(path), :body => body, :headers => options.delete(:headers), :query => options.delete(:query))
|
94
|
+
options[:body] = body
|
95
|
+
transmit :put, path, options
|
61
96
|
end
|
62
|
-
|
63
|
-
#
|
97
|
+
|
98
|
+
# Returns an HTTP::Response object or raise a Restfully::HTTP::Error
|
64
99
|
def delete(path, options = {})
|
65
|
-
|
66
|
-
transmit :delete, HTTP::Request.new(uri_for(path), :headers => options.delete(:headers), :query => options.delete(:query))
|
100
|
+
transmit :delete, path, options
|
67
101
|
end
|
68
|
-
|
69
|
-
#
|
70
|
-
def
|
71
|
-
|
102
|
+
|
103
|
+
# Build and send the corresponding HTTP request, then process the response
|
104
|
+
def transmit(method, path, options)
|
105
|
+
request = HTTP::Request.new(self, method, path, options)
|
106
|
+
|
107
|
+
response = execute(request)
|
108
|
+
|
109
|
+
process(response, request)
|
72
110
|
end
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
111
|
+
|
112
|
+
def execute(request)
|
113
|
+
resource = RestClient::Resource.new(
|
114
|
+
request.uri.to_s,
|
115
|
+
:headers => request.head
|
116
|
+
)
|
117
|
+
|
118
|
+
code, head, body = resource.send(request.method, request.body || {})
|
119
|
+
|
120
|
+
response = Restfully::HTTP::Response.new(self, code, head, body)
|
81
121
|
end
|
82
|
-
|
83
|
-
|
84
|
-
|
122
|
+
|
123
|
+
# Process a Restfully::HTTP::Response.
|
124
|
+
def process(response, request)
|
125
|
+
case code=response.code
|
126
|
+
when 200
|
127
|
+
Resource.new(self, response, request).build
|
128
|
+
when 201,202
|
129
|
+
get response.head['Location'], :head => request.head
|
130
|
+
when 204
|
131
|
+
true
|
85
132
|
when 400..499
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
133
|
+
msg = "Encountered error #{code} on #{request.method.upcase} #{request.uri}"
|
134
|
+
msg += " --- #{response.body[0..200]}" unless response.body.empty?
|
135
|
+
raise HTTP::ClientError, msg
|
136
|
+
when 500..599
|
137
|
+
# when 503, sleep 5, request.retry
|
138
|
+
msg = "Encountered error #{code} on #{request.method.upcase} #{request.uri}"
|
139
|
+
msg += " --- #{response.body[0..200]}" unless response.body.empty?
|
140
|
+
raise HTTP::ServerError, msg
|
90
141
|
else
|
91
|
-
|
142
|
+
raise Error, "Restfully does not handle code #{code.inspect}."
|
92
143
|
end
|
93
144
|
end
|
94
145
|
|
146
|
+
protected
|
147
|
+
def setup_cache
|
148
|
+
enable ::Rack::Cache, :verbose => (logger.level < Logger::INFO)
|
149
|
+
end
|
150
|
+
|
95
151
|
end
|
96
|
-
|
152
|
+
|
153
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<compute xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/uk-epcc/computes/1">
|
3
|
+
<name>Compute name</name>
|
4
|
+
<description>Compute description</description>
|
5
|
+
<instance_type>small</instance_type>
|
6
|
+
<state>ACTIVE</state>
|
7
|
+
|
8
|
+
<disk>
|
9
|
+
<storage href="/locations/fr-inria/storages/1" />
|
10
|
+
<type>OS</type>
|
11
|
+
<target>sda</target>
|
12
|
+
</disk>
|
13
|
+
<disk>
|
14
|
+
<storage href="/locations/fr-inria/storages/2" />
|
15
|
+
<type>CDROM</type>
|
16
|
+
<target>sdc</target>
|
17
|
+
</disk>
|
18
|
+
|
19
|
+
<nic>
|
20
|
+
<network href="/locations/fr-inria/networks/1" />
|
21
|
+
<device>eth0</device>
|
22
|
+
<ip>123.123.123.123</ip>
|
23
|
+
<mac>AA:AA:AA:AA</mac>
|
24
|
+
</nic>
|
25
|
+
<nic>
|
26
|
+
<network href="/locations/fr-inria/networks/2" />
|
27
|
+
<device>eth1</device>
|
28
|
+
<ip>123.123.124.2</ip>
|
29
|
+
<mac>BB:BB:BB:BB</mac>
|
30
|
+
</nic>
|
31
|
+
|
32
|
+
<context>
|
33
|
+
<monitoring_ip>123.123.123.2</monitoring_ip>
|
34
|
+
<bonfire_credentials>crohr:p4ssw0rd</bonfire_credentials>
|
35
|
+
</context>
|
36
|
+
|
37
|
+
<!-- VWall specific: maybe this could be included in <context> element? -->
|
38
|
+
<startup href="file:///path/to/startup-script/sh" />
|
39
|
+
|
40
|
+
<link rel="location"
|
41
|
+
href="/locations/fr-inria"
|
42
|
+
type="application/vnd.bonfire+xml" />
|
43
|
+
</compute>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/experiments">
|
3
|
+
<items offset="0" total="3">
|
4
|
+
<experiment href="/experiments/1">
|
5
|
+
<id>1</id>
|
6
|
+
<description>Experiment description</description>
|
7
|
+
<name>My Experiment</name>
|
8
|
+
<walltime>2011-04-26T16:15:21Z</walltime>
|
9
|
+
<user_id>crohr</user_id>
|
10
|
+
<status>canceled</status>
|
11
|
+
<networks>
|
12
|
+
</networks>
|
13
|
+
<computes>
|
14
|
+
</computes>
|
15
|
+
<storages>
|
16
|
+
</storages>
|
17
|
+
<link rel="parent" href="/"/>
|
18
|
+
</experiment>
|
19
|
+
<experiment href="/experiments/2">
|
20
|
+
<id>2</id>
|
21
|
+
<description>Experiment description</description>
|
22
|
+
<name>My Experiment</name>
|
23
|
+
<walltime>2011-04-26T16:16:01Z</walltime>
|
24
|
+
<user_id>crohr</user_id>
|
25
|
+
<status>canceled</status>
|
26
|
+
<networks>
|
27
|
+
</networks>
|
28
|
+
<computes>
|
29
|
+
</computes>
|
30
|
+
<storages>
|
31
|
+
</storages>
|
32
|
+
<link rel="parent" href="/"/>
|
33
|
+
</experiment>
|
34
|
+
<experiment href="/experiments/3">
|
35
|
+
<id>3</id>
|
36
|
+
<description>Experiment description</description>
|
37
|
+
<name>My Experiment</name>
|
38
|
+
<walltime>2011-04-26T19:10:16Z</walltime>
|
39
|
+
<user_id>crohr</user_id>
|
40
|
+
<status>canceled</status>
|
41
|
+
<networks>
|
42
|
+
</networks>
|
43
|
+
<computes>
|
44
|
+
</computes>
|
45
|
+
<storages>
|
46
|
+
</storages>
|
47
|
+
<link rel="parent" href="/"/>
|
48
|
+
</experiment>
|
49
|
+
</items>
|
50
|
+
<link href="/" rel="parent" type="application/vnd.bonfire+xml"/>
|
51
|
+
</collection>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/fr-inria/networks">
|
3
|
+
<items offset="0" total="2">
|
4
|
+
<network href="/locations/fr-inria/networks/1">
|
5
|
+
<address>10.0.0.1</address>
|
6
|
+
<size>C</size>
|
7
|
+
|
8
|
+
<!-- <cidr>10.0.0.1/24</cidr> -->
|
9
|
+
|
10
|
+
<visibility>public</visibility>
|
11
|
+
<name>Network1</name>
|
12
|
+
<description>Network1 description</description>
|
13
|
+
|
14
|
+
<link rel="location"
|
15
|
+
href="/locations/fr-inria" />
|
16
|
+
</network>
|
17
|
+
<network href="/locations/fr-inria/networks/2">
|
18
|
+
<address>10.0.0.1</address>
|
19
|
+
<size>C</size>
|
20
|
+
<!-- <cidr>10.0.0.2/24</cidr> -->
|
21
|
+
<visibility>private</visibility>
|
22
|
+
<name>Network2</name>
|
23
|
+
<description>Network2 description</description>
|
24
|
+
|
25
|
+
<link rel="location"
|
26
|
+
href="/locations/fr-inria" />
|
27
|
+
</network>
|
28
|
+
</items>
|
29
|
+
<link rel="top"
|
30
|
+
href="/locations/fr-inria/networks?limit=20"
|
31
|
+
type="application/vnd.bonfire+xml" />
|
32
|
+
<link rel="parent"
|
33
|
+
href="/locations/fr-inria"
|
34
|
+
type="application/vnd.bonfire+xml" />
|
35
|
+
</collection>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<root xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/">
|
3
|
+
<link rel="experiments" href="/experiments" type="application/vnd.bonfire+xml"/>
|
4
|
+
<link rel="locations" href="/locations" type="application/vnd.bonfire+xml"/>
|
5
|
+
</root>
|
@@ -1,166 +1,1008 @@
|
|
1
1
|
{
|
2
|
-
|
2
|
+
"total": 366486,
|
3
|
+
"offset": 0,
|
4
|
+
"items": [{
|
5
|
+
"uid": 376505,
|
6
|
+
"user": "sbadia",
|
7
|
+
"start_time": 1297866066,
|
8
|
+
"predicted_start_time": "1297866066",
|
9
|
+
"walltime": 3600,
|
10
|
+
"queue": "default",
|
11
|
+
"state": "running",
|
12
|
+
"project": "default",
|
13
|
+
"links": [{
|
14
|
+
"rel": "self",
|
15
|
+
"href": "/grid5000/sites/rennes/jobs/376505",
|
16
|
+
"type": "application/vnd.grid5000+json"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"rel": "parent",
|
20
|
+
"href": "/grid5000/sites/rennes",
|
21
|
+
"type": "application/vnd.grid5000+json"
|
22
|
+
}]
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"uid": 376504,
|
26
|
+
"user": "sbadia",
|
27
|
+
"start_time": 1297866010,
|
28
|
+
"walltime": 3600,
|
29
|
+
"queue": "default",
|
30
|
+
"state": "terminated",
|
31
|
+
"project": "default",
|
32
|
+
"links": [{
|
33
|
+
"rel": "self",
|
34
|
+
"href": "/grid5000/sites/rennes/jobs/376504",
|
35
|
+
"type": "application/vnd.grid5000+json"
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"rel": "parent",
|
39
|
+
"href": "/grid5000/sites/rennes",
|
40
|
+
"type": "application/vnd.grid5000+json"
|
41
|
+
}]
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"uid": 376503,
|
45
|
+
"user": "tvluong",
|
46
|
+
"start_time": 1297865716,
|
47
|
+
"walltime": 39600,
|
48
|
+
"queue": "default",
|
49
|
+
"state": "error",
|
50
|
+
"project": "default",
|
51
|
+
"links": [{
|
52
|
+
"rel": "self",
|
53
|
+
"href": "/grid5000/sites/rennes/jobs/376503",
|
54
|
+
"type": "application/vnd.grid5000+json"
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"rel": "parent",
|
58
|
+
"href": "/grid5000/sites/rennes",
|
59
|
+
"type": "application/vnd.grid5000+json"
|
60
|
+
}]
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"uid": 376502,
|
64
|
+
"user": "jsilvabernardes",
|
65
|
+
"start_time": 0,
|
66
|
+
"predicted_start_time": "1297922461",
|
67
|
+
"walltime": 14400,
|
68
|
+
"queue": "default",
|
69
|
+
"state": "waiting",
|
70
|
+
"project": "default",
|
71
|
+
"name": "result1",
|
72
|
+
"links": [{
|
73
|
+
"rel": "self",
|
74
|
+
"href": "/grid5000/sites/rennes/jobs/376502",
|
75
|
+
"type": "application/vnd.grid5000+json"
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"rel": "parent",
|
79
|
+
"href": "/grid5000/sites/rennes",
|
80
|
+
"type": "application/vnd.grid5000+json"
|
81
|
+
}]
|
82
|
+
},
|
3
83
|
{
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
84
|
+
"uid": 376501,
|
85
|
+
"user": "oiegorov",
|
86
|
+
"start_time": 1297864644,
|
87
|
+
"predicted_start_time": "1297864644",
|
88
|
+
"walltime": 1794,
|
89
|
+
"queue": "default",
|
90
|
+
"state": "running",
|
91
|
+
"project": "default",
|
92
|
+
"links": [{
|
93
|
+
"rel": "self",
|
94
|
+
"href": "/grid5000/sites/rennes/jobs/376501",
|
95
|
+
"type": "application/vnd.grid5000+json"
|
96
|
+
},
|
9
97
|
{
|
10
|
-
|
11
|
-
|
12
|
-
|
98
|
+
"rel": "parent",
|
99
|
+
"href": "/grid5000/sites/rennes",
|
100
|
+
"type": "application/vnd.grid5000+json"
|
101
|
+
}]
|
102
|
+
},
|
103
|
+
{
|
104
|
+
"uid": 376500,
|
105
|
+
"user": "tvluong",
|
106
|
+
"start_time": 1297864279,
|
107
|
+
"walltime": 39600,
|
108
|
+
"queue": "default",
|
109
|
+
"state": "error",
|
110
|
+
"project": "default",
|
111
|
+
"links": [{
|
112
|
+
"rel": "self",
|
113
|
+
"href": "/grid5000/sites/rennes/jobs/376500",
|
114
|
+
"type": "application/vnd.grid5000+json"
|
13
115
|
},
|
14
116
|
{
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
}
|
19
|
-
],
|
20
|
-
"queue": "default",
|
21
|
-
"state": "running"
|
117
|
+
"rel": "parent",
|
118
|
+
"href": "/grid5000/sites/rennes",
|
119
|
+
"type": "application/vnd.grid5000+json"
|
120
|
+
}]
|
22
121
|
},
|
23
122
|
{
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
123
|
+
"uid": 376499,
|
124
|
+
"user": "hchihoub",
|
125
|
+
"start_time": 1297863914,
|
126
|
+
"predicted_start_time": "1297863914",
|
127
|
+
"walltime": 14396,
|
128
|
+
"queue": "default",
|
129
|
+
"state": "running",
|
130
|
+
"project": "default",
|
131
|
+
"links": [{
|
132
|
+
"rel": "self",
|
133
|
+
"href": "/grid5000/sites/rennes/jobs/376499",
|
134
|
+
"type": "application/vnd.grid5000+json"
|
135
|
+
},
|
28
136
|
{
|
29
|
-
|
30
|
-
|
31
|
-
|
137
|
+
"rel": "parent",
|
138
|
+
"href": "/grid5000/sites/rennes",
|
139
|
+
"type": "application/vnd.grid5000+json"
|
140
|
+
}]
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"uid": 376498,
|
144
|
+
"user": "sbadia",
|
145
|
+
"start_time": 1297863672,
|
146
|
+
"walltime": 3600,
|
147
|
+
"queue": "default",
|
148
|
+
"state": "terminated",
|
149
|
+
"project": "default",
|
150
|
+
"links": [{
|
151
|
+
"rel": "self",
|
152
|
+
"href": "/grid5000/sites/rennes/jobs/376498",
|
153
|
+
"type": "application/vnd.grid5000+json"
|
32
154
|
},
|
33
155
|
{
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
}
|
38
|
-
],
|
39
|
-
"queue": "default",
|
40
|
-
"state": "running"
|
156
|
+
"rel": "parent",
|
157
|
+
"href": "/grid5000/sites/rennes",
|
158
|
+
"type": "application/vnd.grid5000+json"
|
159
|
+
}]
|
41
160
|
},
|
42
161
|
{
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
162
|
+
"uid": 376497,
|
163
|
+
"user": "tvluong",
|
164
|
+
"start_time": 1297863647,
|
165
|
+
"walltime": 39600,
|
166
|
+
"queue": "default",
|
167
|
+
"state": "error",
|
168
|
+
"project": "default",
|
169
|
+
"links": [{
|
170
|
+
"rel": "self",
|
171
|
+
"href": "/grid5000/sites/rennes/jobs/376497",
|
172
|
+
"type": "application/vnd.grid5000+json"
|
173
|
+
},
|
47
174
|
{
|
48
|
-
|
49
|
-
|
50
|
-
|
175
|
+
"rel": "parent",
|
176
|
+
"href": "/grid5000/sites/rennes",
|
177
|
+
"type": "application/vnd.grid5000+json"
|
178
|
+
}]
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"uid": 376496,
|
182
|
+
"user": "priteau",
|
183
|
+
"start_time": 1297861555,
|
184
|
+
"predicted_start_time": "1297861555",
|
185
|
+
"walltime": 10800,
|
186
|
+
"queue": "default",
|
187
|
+
"state": "running",
|
188
|
+
"project": "default",
|
189
|
+
"name": "Nimbus",
|
190
|
+
"links": [{
|
191
|
+
"rel": "self",
|
192
|
+
"href": "/grid5000/sites/rennes/jobs/376496",
|
193
|
+
"type": "application/vnd.grid5000+json"
|
51
194
|
},
|
52
195
|
{
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
57
|
-
],
|
58
|
-
"queue": "default",
|
59
|
-
"state": "running"
|
196
|
+
"rel": "parent",
|
197
|
+
"href": "/grid5000/sites/rennes",
|
198
|
+
"type": "application/vnd.grid5000+json"
|
199
|
+
}]
|
60
200
|
},
|
61
201
|
{
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
"type": "application/vnd.fr.grid5000.api.Site+json;level=1"
|
75
|
-
}
|
76
|
-
],
|
77
|
-
"queue": "default",
|
78
|
-
"state": "running"
|
79
|
-
},
|
80
|
-
{
|
81
|
-
"submitted_at": 1265312207,
|
82
|
-
"uid": 319462,
|
83
|
-
"user_uid": "acarpena",
|
84
|
-
"links": [
|
85
|
-
{
|
86
|
-
"href": "/sid/grid5000/sites/rennes/jobs/319462",
|
87
|
-
"rel": "self",
|
88
|
-
"type": "application/vnd.fr.grid5000.api.Job+json;level=1"
|
89
|
-
},
|
90
|
-
{
|
91
|
-
"href": "/sid/grid5000/sites/rennes",
|
92
|
-
"rel": "parent",
|
93
|
-
"type": "application/vnd.fr.grid5000.api.Site+json;level=1"
|
94
|
-
}
|
95
|
-
],
|
96
|
-
"queue": "default",
|
97
|
-
"state": "waiting"
|
98
|
-
},
|
99
|
-
{
|
100
|
-
"submitted_at": 1265292999,
|
101
|
-
"uid": 319432,
|
102
|
-
"user_uid": "acarpena",
|
103
|
-
"links": [
|
104
|
-
{
|
105
|
-
"href": "/sid/grid5000/sites/rennes/jobs/319432",
|
106
|
-
"rel": "self",
|
107
|
-
"type": "application/vnd.fr.grid5000.api.Job+json;level=1"
|
202
|
+
"uid": 376495,
|
203
|
+
"user": "jsilvabernardes",
|
204
|
+
"start_time": 1297860565,
|
205
|
+
"walltime": 14400,
|
206
|
+
"queue": "default",
|
207
|
+
"state": "terminated",
|
208
|
+
"project": "default",
|
209
|
+
"name": "result1",
|
210
|
+
"links": [{
|
211
|
+
"rel": "self",
|
212
|
+
"href": "/grid5000/sites/rennes/jobs/376495",
|
213
|
+
"type": "application/vnd.grid5000+json"
|
108
214
|
},
|
109
215
|
{
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
}
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
216
|
+
"rel": "parent",
|
217
|
+
"href": "/grid5000/sites/rennes",
|
218
|
+
"type": "application/vnd.grid5000+json"
|
219
|
+
}]
|
220
|
+
},
|
221
|
+
{
|
222
|
+
"uid": 376494,
|
223
|
+
"user": "jsilvabernardes",
|
224
|
+
"start_time": 1297859317,
|
225
|
+
"walltime": 14400,
|
226
|
+
"queue": "default",
|
227
|
+
"state": "terminated",
|
228
|
+
"project": "default",
|
229
|
+
"name": "result1",
|
230
|
+
"links": [{
|
231
|
+
"rel": "self",
|
232
|
+
"href": "/grid5000/sites/rennes/jobs/376494",
|
233
|
+
"type": "application/vnd.grid5000+json"
|
234
|
+
},
|
235
|
+
{
|
236
|
+
"rel": "parent",
|
237
|
+
"href": "/grid5000/sites/rennes",
|
238
|
+
"type": "application/vnd.grid5000+json"
|
239
|
+
}]
|
240
|
+
},
|
241
|
+
{
|
242
|
+
"uid": 376493,
|
243
|
+
"user": "jsilvabernardes",
|
244
|
+
"start_time": 1297859255,
|
245
|
+
"walltime": 14400,
|
246
|
+
"queue": "default",
|
247
|
+
"state": "terminated",
|
248
|
+
"project": "default",
|
249
|
+
"name": "result1",
|
250
|
+
"links": [{
|
251
|
+
"rel": "self",
|
252
|
+
"href": "/grid5000/sites/rennes/jobs/376493",
|
253
|
+
"type": "application/vnd.grid5000+json"
|
254
|
+
},
|
255
|
+
{
|
256
|
+
"rel": "parent",
|
257
|
+
"href": "/grid5000/sites/rennes",
|
258
|
+
"type": "application/vnd.grid5000+json"
|
259
|
+
}]
|
260
|
+
},
|
261
|
+
{
|
262
|
+
"uid": 376492,
|
263
|
+
"user": "mdorier",
|
264
|
+
"start_time": 1297858038,
|
265
|
+
"walltime": 18000,
|
266
|
+
"queue": "default",
|
267
|
+
"state": "terminated",
|
268
|
+
"project": "default",
|
269
|
+
"links": [{
|
270
|
+
"rel": "self",
|
271
|
+
"href": "/grid5000/sites/rennes/jobs/376492",
|
272
|
+
"type": "application/vnd.grid5000+json"
|
273
|
+
},
|
274
|
+
{
|
275
|
+
"rel": "parent",
|
276
|
+
"href": "/grid5000/sites/rennes",
|
277
|
+
"type": "application/vnd.grid5000+json"
|
278
|
+
}]
|
279
|
+
},
|
280
|
+
{
|
281
|
+
"uid": 376491,
|
282
|
+
"user": "priteau",
|
283
|
+
"start_time": 1297857976,
|
284
|
+
"walltime": 3600,
|
285
|
+
"queue": "default",
|
286
|
+
"state": "terminated",
|
287
|
+
"project": "default",
|
288
|
+
"name": "Chef",
|
289
|
+
"links": [{
|
290
|
+
"rel": "self",
|
291
|
+
"href": "/grid5000/sites/rennes/jobs/376491",
|
292
|
+
"type": "application/vnd.grid5000+json"
|
293
|
+
},
|
294
|
+
{
|
295
|
+
"rel": "parent",
|
296
|
+
"href": "/grid5000/sites/rennes",
|
297
|
+
"type": "application/vnd.grid5000+json"
|
298
|
+
}]
|
299
|
+
},
|
300
|
+
{
|
301
|
+
"uid": 376489,
|
302
|
+
"user": "hdoghmen",
|
303
|
+
"start_time": 0,
|
304
|
+
"predicted_start_time": "1297922461",
|
305
|
+
"walltime": 54000,
|
306
|
+
"queue": "besteffort",
|
307
|
+
"state": "waiting",
|
308
|
+
"project": "default",
|
309
|
+
"name": "7big10b",
|
310
|
+
"links": [{
|
311
|
+
"rel": "self",
|
312
|
+
"href": "/grid5000/sites/rennes/jobs/376489",
|
313
|
+
"type": "application/vnd.grid5000+json"
|
314
|
+
},
|
315
|
+
{
|
316
|
+
"rel": "parent",
|
317
|
+
"href": "/grid5000/sites/rennes",
|
318
|
+
"type": "application/vnd.grid5000+json"
|
319
|
+
}]
|
320
|
+
},
|
321
|
+
{
|
322
|
+
"uid": 376490,
|
323
|
+
"user": "hdoghmen",
|
324
|
+
"start_time": 1297856515,
|
325
|
+
"walltime": 54000,
|
326
|
+
"queue": "besteffort",
|
327
|
+
"state": "error",
|
328
|
+
"project": "default",
|
329
|
+
"name": "big10",
|
330
|
+
"links": [{
|
331
|
+
"rel": "self",
|
332
|
+
"href": "/grid5000/sites/rennes/jobs/376490",
|
333
|
+
"type": "application/vnd.grid5000+json"
|
334
|
+
},
|
128
335
|
{
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
}
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
{
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
},
|
147
|
-
{
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
}
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
}
|
336
|
+
"rel": "parent",
|
337
|
+
"href": "/grid5000/sites/rennes",
|
338
|
+
"type": "application/vnd.grid5000+json"
|
339
|
+
}]
|
340
|
+
},
|
341
|
+
{
|
342
|
+
"uid": 376488,
|
343
|
+
"user": "hchihoub",
|
344
|
+
"start_time": 1297853436,
|
345
|
+
"walltime": 3597,
|
346
|
+
"queue": "default",
|
347
|
+
"state": "error",
|
348
|
+
"project": "default",
|
349
|
+
"links": [{
|
350
|
+
"rel": "self",
|
351
|
+
"href": "/grid5000/sites/rennes/jobs/376488",
|
352
|
+
"type": "application/vnd.grid5000+json"
|
353
|
+
},
|
354
|
+
{
|
355
|
+
"rel": "parent",
|
356
|
+
"href": "/grid5000/sites/rennes",
|
357
|
+
"type": "application/vnd.grid5000+json"
|
358
|
+
}]
|
359
|
+
},
|
360
|
+
{
|
361
|
+
"uid": 376487,
|
362
|
+
"user": "priteau",
|
363
|
+
"start_time": 1297853337,
|
364
|
+
"walltime": 3600,
|
365
|
+
"queue": "default",
|
366
|
+
"state": "terminated",
|
367
|
+
"project": "default",
|
368
|
+
"name": "Grid5000::Campaign::Engine",
|
369
|
+
"links": [{
|
370
|
+
"rel": "self",
|
371
|
+
"href": "/grid5000/sites/rennes/jobs/376487",
|
372
|
+
"type": "application/vnd.grid5000+json"
|
373
|
+
},
|
374
|
+
{
|
375
|
+
"rel": "parent",
|
376
|
+
"href": "/grid5000/sites/rennes",
|
377
|
+
"type": "application/vnd.grid5000+json"
|
378
|
+
}]
|
379
|
+
},
|
380
|
+
{
|
381
|
+
"uid": 376486,
|
382
|
+
"user": "priteau",
|
383
|
+
"start_time": 1297852418,
|
384
|
+
"walltime": 3600,
|
385
|
+
"queue": "default",
|
386
|
+
"state": "error",
|
387
|
+
"project": "default",
|
388
|
+
"name": "Chef",
|
389
|
+
"links": [{
|
390
|
+
"rel": "self",
|
391
|
+
"href": "/grid5000/sites/rennes/jobs/376486",
|
392
|
+
"type": "application/vnd.grid5000+json"
|
393
|
+
},
|
394
|
+
{
|
395
|
+
"rel": "parent",
|
396
|
+
"href": "/grid5000/sites/rennes",
|
397
|
+
"type": "application/vnd.grid5000+json"
|
398
|
+
}]
|
399
|
+
},
|
400
|
+
{
|
401
|
+
"uid": 376485,
|
402
|
+
"user": "hchihoub",
|
403
|
+
"start_time": 1297852261,
|
404
|
+
"walltime": 2397,
|
405
|
+
"queue": "default",
|
406
|
+
"state": "error",
|
407
|
+
"project": "default",
|
408
|
+
"links": [{
|
409
|
+
"rel": "self",
|
410
|
+
"href": "/grid5000/sites/rennes/jobs/376485",
|
411
|
+
"type": "application/vnd.grid5000+json"
|
412
|
+
},
|
413
|
+
{
|
414
|
+
"rel": "parent",
|
415
|
+
"href": "/grid5000/sites/rennes",
|
416
|
+
"type": "application/vnd.grid5000+json"
|
417
|
+
}]
|
418
|
+
},
|
419
|
+
{
|
420
|
+
"uid": 376484,
|
421
|
+
"user": "priteau",
|
422
|
+
"start_time": 1297851824,
|
423
|
+
"walltime": 3600,
|
424
|
+
"queue": "default",
|
425
|
+
"state": "error",
|
426
|
+
"project": "default",
|
427
|
+
"name": "Grid5000::Campaign::Engine",
|
428
|
+
"links": [{
|
429
|
+
"rel": "self",
|
430
|
+
"href": "/grid5000/sites/rennes/jobs/376484",
|
431
|
+
"type": "application/vnd.grid5000+json"
|
432
|
+
},
|
433
|
+
{
|
434
|
+
"rel": "parent",
|
435
|
+
"href": "/grid5000/sites/rennes",
|
436
|
+
"type": "application/vnd.grid5000+json"
|
437
|
+
}]
|
438
|
+
},
|
439
|
+
{
|
440
|
+
"uid": 376483,
|
441
|
+
"user": "hchihoub",
|
442
|
+
"start_time": 1297851723,
|
443
|
+
"walltime": 2396,
|
444
|
+
"queue": "default",
|
445
|
+
"state": "error",
|
446
|
+
"project": "default",
|
447
|
+
"links": [{
|
448
|
+
"rel": "self",
|
449
|
+
"href": "/grid5000/sites/rennes/jobs/376483",
|
450
|
+
"type": "application/vnd.grid5000+json"
|
451
|
+
},
|
452
|
+
{
|
453
|
+
"rel": "parent",
|
454
|
+
"href": "/grid5000/sites/rennes",
|
455
|
+
"type": "application/vnd.grid5000+json"
|
456
|
+
}]
|
457
|
+
},
|
458
|
+
{
|
459
|
+
"uid": 376482,
|
460
|
+
"user": "priteau",
|
461
|
+
"start_time": 1297851712,
|
462
|
+
"walltime": 3600,
|
463
|
+
"queue": "default",
|
464
|
+
"state": "error",
|
465
|
+
"project": "default",
|
466
|
+
"name": "g5k-campaign test",
|
467
|
+
"links": [{
|
468
|
+
"rel": "self",
|
469
|
+
"href": "/grid5000/sites/rennes/jobs/376482",
|
470
|
+
"type": "application/vnd.grid5000+json"
|
471
|
+
},
|
472
|
+
{
|
473
|
+
"rel": "parent",
|
474
|
+
"href": "/grid5000/sites/rennes",
|
475
|
+
"type": "application/vnd.grid5000+json"
|
476
|
+
}]
|
477
|
+
},
|
478
|
+
{
|
479
|
+
"uid": 376481,
|
480
|
+
"user": "tviettrung",
|
481
|
+
"start_time": 1297863083,
|
482
|
+
"predicted_start_time": "1297863083",
|
483
|
+
"walltime": 7157,
|
484
|
+
"queue": "default",
|
485
|
+
"state": "running",
|
486
|
+
"project": "default",
|
487
|
+
"links": [{
|
488
|
+
"rel": "self",
|
489
|
+
"href": "/grid5000/sites/rennes/jobs/376481",
|
490
|
+
"type": "application/vnd.grid5000+json"
|
491
|
+
},
|
492
|
+
{
|
493
|
+
"rel": "parent",
|
494
|
+
"href": "/grid5000/sites/rennes",
|
495
|
+
"type": "application/vnd.grid5000+json"
|
496
|
+
}]
|
497
|
+
},
|
498
|
+
{
|
499
|
+
"uid": 376480,
|
500
|
+
"user": "priteau",
|
501
|
+
"start_time": 1297850726,
|
502
|
+
"walltime": 7200,
|
503
|
+
"queue": "default",
|
504
|
+
"state": "error",
|
505
|
+
"project": "default",
|
506
|
+
"links": [{
|
507
|
+
"rel": "self",
|
508
|
+
"href": "/grid5000/sites/rennes/jobs/376480",
|
509
|
+
"type": "application/vnd.grid5000+json"
|
510
|
+
},
|
511
|
+
{
|
512
|
+
"rel": "parent",
|
513
|
+
"href": "/grid5000/sites/rennes",
|
514
|
+
"type": "application/vnd.grid5000+json"
|
515
|
+
}]
|
516
|
+
},
|
517
|
+
{
|
518
|
+
"uid": 376479,
|
519
|
+
"user": "mimbert",
|
520
|
+
"start_time": 1297850005,
|
521
|
+
"walltime": 3515,
|
522
|
+
"queue": "default",
|
523
|
+
"state": "error",
|
524
|
+
"project": "default",
|
525
|
+
"links": [{
|
526
|
+
"rel": "self",
|
527
|
+
"href": "/grid5000/sites/rennes/jobs/376479",
|
528
|
+
"type": "application/vnd.grid5000+json"
|
529
|
+
},
|
530
|
+
{
|
531
|
+
"rel": "parent",
|
532
|
+
"href": "/grid5000/sites/rennes",
|
533
|
+
"type": "application/vnd.grid5000+json"
|
534
|
+
}]
|
535
|
+
},
|
536
|
+
{
|
537
|
+
"uid": 376478,
|
538
|
+
"user": "gbrand",
|
539
|
+
"start_time": 1297848877,
|
540
|
+
"predicted_start_time": "1297848877",
|
541
|
+
"walltime": 28800,
|
542
|
+
"queue": "testing",
|
543
|
+
"state": "running",
|
544
|
+
"project": "default",
|
545
|
+
"links": [{
|
546
|
+
"rel": "self",
|
547
|
+
"href": "/grid5000/sites/rennes/jobs/376478",
|
548
|
+
"type": "application/vnd.grid5000+json"
|
549
|
+
},
|
550
|
+
{
|
551
|
+
"rel": "parent",
|
552
|
+
"href": "/grid5000/sites/rennes",
|
553
|
+
"type": "application/vnd.grid5000+json"
|
554
|
+
}]
|
555
|
+
},
|
556
|
+
{
|
557
|
+
"uid": 376477,
|
558
|
+
"user": "gbrand",
|
559
|
+
"start_time": 1297848877,
|
560
|
+
"predicted_start_time": "1297848877",
|
561
|
+
"walltime": 28800,
|
562
|
+
"queue": "testing",
|
563
|
+
"state": "running",
|
564
|
+
"project": "default",
|
565
|
+
"links": [{
|
566
|
+
"rel": "self",
|
567
|
+
"href": "/grid5000/sites/rennes/jobs/376477",
|
568
|
+
"type": "application/vnd.grid5000+json"
|
569
|
+
},
|
570
|
+
{
|
571
|
+
"rel": "parent",
|
572
|
+
"href": "/grid5000/sites/rennes",
|
573
|
+
"type": "application/vnd.grid5000+json"
|
574
|
+
}]
|
575
|
+
},
|
576
|
+
{
|
577
|
+
"uid": 376476,
|
578
|
+
"user": "tvluong",
|
579
|
+
"start_time": 1297846887,
|
580
|
+
"walltime": 39600,
|
581
|
+
"queue": "default",
|
582
|
+
"state": "error",
|
583
|
+
"project": "default",
|
584
|
+
"links": [{
|
585
|
+
"rel": "self",
|
586
|
+
"href": "/grid5000/sites/rennes/jobs/376476",
|
587
|
+
"type": "application/vnd.grid5000+json"
|
588
|
+
},
|
589
|
+
{
|
590
|
+
"rel": "parent",
|
591
|
+
"href": "/grid5000/sites/rennes",
|
592
|
+
"type": "application/vnd.grid5000+json"
|
593
|
+
}]
|
594
|
+
},
|
595
|
+
{
|
596
|
+
"uid": 376475,
|
597
|
+
"user": "mdorier",
|
598
|
+
"start_time": 1297844954,
|
599
|
+
"walltime": 32400,
|
600
|
+
"queue": "default",
|
601
|
+
"state": "terminated",
|
602
|
+
"project": "default",
|
603
|
+
"links": [{
|
604
|
+
"rel": "self",
|
605
|
+
"href": "/grid5000/sites/rennes/jobs/376475",
|
606
|
+
"type": "application/vnd.grid5000+json"
|
607
|
+
},
|
608
|
+
{
|
609
|
+
"rel": "parent",
|
610
|
+
"href": "/grid5000/sites/rennes",
|
611
|
+
"type": "application/vnd.grid5000+json"
|
612
|
+
}]
|
613
|
+
},
|
614
|
+
{
|
615
|
+
"uid": 376473,
|
616
|
+
"user": "hdoghmen",
|
617
|
+
"start_time": 1297844750,
|
618
|
+
"predicted_start_time": "1297844750",
|
619
|
+
"walltime": 54000,
|
620
|
+
"queue": "besteffort",
|
621
|
+
"state": "running",
|
622
|
+
"project": "default",
|
623
|
+
"name": "7big10b",
|
624
|
+
"links": [{
|
625
|
+
"rel": "self",
|
626
|
+
"href": "/grid5000/sites/rennes/jobs/376473",
|
627
|
+
"type": "application/vnd.grid5000+json"
|
628
|
+
},
|
629
|
+
{
|
630
|
+
"rel": "parent",
|
631
|
+
"href": "/grid5000/sites/rennes",
|
632
|
+
"type": "application/vnd.grid5000+json"
|
633
|
+
}]
|
634
|
+
},
|
635
|
+
{
|
636
|
+
"uid": 376474,
|
637
|
+
"user": "hdoghmen",
|
638
|
+
"start_time": 1297844750,
|
639
|
+
"walltime": 54000,
|
640
|
+
"queue": "besteffort",
|
641
|
+
"state": "error",
|
642
|
+
"project": "default",
|
643
|
+
"name": "big10",
|
644
|
+
"links": [{
|
645
|
+
"rel": "self",
|
646
|
+
"href": "/grid5000/sites/rennes/jobs/376474",
|
647
|
+
"type": "application/vnd.grid5000+json"
|
648
|
+
},
|
649
|
+
{
|
650
|
+
"rel": "parent",
|
651
|
+
"href": "/grid5000/sites/rennes",
|
652
|
+
"type": "application/vnd.grid5000+json"
|
653
|
+
}]
|
654
|
+
},
|
655
|
+
{
|
656
|
+
"uid": 376472,
|
657
|
+
"user": "cfortina",
|
658
|
+
"start_time": 1297844732,
|
659
|
+
"walltime": 10800,
|
660
|
+
"queue": "default",
|
661
|
+
"state": "terminated",
|
662
|
+
"project": "default",
|
663
|
+
"links": [{
|
664
|
+
"rel": "self",
|
665
|
+
"href": "/grid5000/sites/rennes/jobs/376472",
|
666
|
+
"type": "application/vnd.grid5000+json"
|
667
|
+
},
|
668
|
+
{
|
669
|
+
"rel": "parent",
|
670
|
+
"href": "/grid5000/sites/rennes",
|
671
|
+
"type": "application/vnd.grid5000+json"
|
672
|
+
}]
|
673
|
+
},
|
674
|
+
{
|
675
|
+
"uid": 376471,
|
676
|
+
"user": "yparent",
|
677
|
+
"start_time": 1297844480,
|
678
|
+
"walltime": 10800,
|
679
|
+
"queue": "default",
|
680
|
+
"state": "terminated",
|
681
|
+
"project": "default",
|
682
|
+
"links": [{
|
683
|
+
"rel": "self",
|
684
|
+
"href": "/grid5000/sites/rennes/jobs/376471",
|
685
|
+
"type": "application/vnd.grid5000+json"
|
686
|
+
},
|
687
|
+
{
|
688
|
+
"rel": "parent",
|
689
|
+
"href": "/grid5000/sites/rennes",
|
690
|
+
"type": "application/vnd.grid5000+json"
|
691
|
+
}]
|
692
|
+
},
|
693
|
+
{
|
694
|
+
"uid": 376470,
|
695
|
+
"user": "fmarceteau",
|
696
|
+
"start_time": 1297843785,
|
697
|
+
"walltime": 10797,
|
698
|
+
"queue": "default",
|
699
|
+
"state": "error",
|
700
|
+
"project": "default",
|
701
|
+
"links": [{
|
702
|
+
"rel": "self",
|
703
|
+
"href": "/grid5000/sites/rennes/jobs/376470",
|
704
|
+
"type": "application/vnd.grid5000+json"
|
705
|
+
},
|
706
|
+
{
|
707
|
+
"rel": "parent",
|
708
|
+
"href": "/grid5000/sites/rennes",
|
709
|
+
"type": "application/vnd.grid5000+json"
|
710
|
+
}]
|
711
|
+
},
|
712
|
+
{
|
713
|
+
"uid": 376469,
|
714
|
+
"user": "fchuffart",
|
715
|
+
"start_time": 1297862106,
|
716
|
+
"walltime": 1794,
|
717
|
+
"queue": "default",
|
718
|
+
"state": "error",
|
719
|
+
"project": "default",
|
720
|
+
"links": [{
|
721
|
+
"rel": "self",
|
722
|
+
"href": "/grid5000/sites/rennes/jobs/376469",
|
723
|
+
"type": "application/vnd.grid5000+json"
|
724
|
+
},
|
725
|
+
{
|
726
|
+
"rel": "parent",
|
727
|
+
"href": "/grid5000/sites/rennes",
|
728
|
+
"type": "application/vnd.grid5000+json"
|
729
|
+
}]
|
730
|
+
},
|
731
|
+
{
|
732
|
+
"uid": 376468,
|
733
|
+
"user": "fchuffart",
|
734
|
+
"start_time": 1297926901,
|
735
|
+
"predicted_start_time": "1297926901",
|
736
|
+
"walltime": 1800,
|
737
|
+
"queue": "default",
|
738
|
+
"state": "waiting",
|
739
|
+
"project": "default",
|
740
|
+
"links": [{
|
741
|
+
"rel": "self",
|
742
|
+
"href": "/grid5000/sites/rennes/jobs/376468",
|
743
|
+
"type": "application/vnd.grid5000+json"
|
744
|
+
},
|
745
|
+
{
|
746
|
+
"rel": "parent",
|
747
|
+
"href": "/grid5000/sites/rennes",
|
748
|
+
"type": "application/vnd.grid5000+json"
|
749
|
+
}]
|
750
|
+
},
|
751
|
+
{
|
752
|
+
"uid": 376467,
|
753
|
+
"user": "yhoarau",
|
754
|
+
"start_time": 0,
|
755
|
+
"predicted_start_time": "1297922461",
|
756
|
+
"walltime": 86400,
|
757
|
+
"queue": "default",
|
758
|
+
"state": "waiting",
|
759
|
+
"project": "default",
|
760
|
+
"links": [{
|
761
|
+
"rel": "self",
|
762
|
+
"href": "/grid5000/sites/rennes/jobs/376467",
|
763
|
+
"type": "application/vnd.grid5000+json"
|
764
|
+
},
|
765
|
+
{
|
766
|
+
"rel": "parent",
|
767
|
+
"href": "/grid5000/sites/rennes",
|
768
|
+
"type": "application/vnd.grid5000+json"
|
769
|
+
}]
|
770
|
+
},
|
771
|
+
{
|
772
|
+
"uid": 376466,
|
773
|
+
"user": "tvluong",
|
774
|
+
"start_time": 1297812720,
|
775
|
+
"walltime": 39595,
|
776
|
+
"queue": "default",
|
777
|
+
"state": "error",
|
778
|
+
"project": "default",
|
779
|
+
"links": [{
|
780
|
+
"rel": "self",
|
781
|
+
"href": "/grid5000/sites/rennes/jobs/376466",
|
782
|
+
"type": "application/vnd.grid5000+json"
|
783
|
+
},
|
784
|
+
{
|
785
|
+
"rel": "parent",
|
786
|
+
"href": "/grid5000/sites/rennes",
|
787
|
+
"type": "application/vnd.grid5000+json"
|
788
|
+
}]
|
789
|
+
},
|
790
|
+
{
|
791
|
+
"uid": 376465,
|
792
|
+
"user": "tvluong",
|
793
|
+
"start_time": 1297809221,
|
794
|
+
"walltime": 39595,
|
795
|
+
"queue": "default",
|
796
|
+
"state": "error",
|
797
|
+
"project": "default",
|
798
|
+
"links": [{
|
799
|
+
"rel": "self",
|
800
|
+
"href": "/grid5000/sites/rennes/jobs/376465",
|
801
|
+
"type": "application/vnd.grid5000+json"
|
802
|
+
},
|
803
|
+
{
|
804
|
+
"rel": "parent",
|
805
|
+
"href": "/grid5000/sites/rennes",
|
806
|
+
"type": "application/vnd.grid5000+json"
|
807
|
+
}]
|
808
|
+
},
|
809
|
+
{
|
810
|
+
"uid": 376464,
|
811
|
+
"user": "sdelamare",
|
812
|
+
"start_time": 1297803365,
|
813
|
+
"walltime": 3600,
|
814
|
+
"queue": "default",
|
815
|
+
"state": "error",
|
816
|
+
"project": "default",
|
817
|
+
"name": "Test",
|
818
|
+
"links": [{
|
819
|
+
"rel": "self",
|
820
|
+
"href": "/grid5000/sites/rennes/jobs/376464",
|
821
|
+
"type": "application/vnd.grid5000+json"
|
822
|
+
},
|
823
|
+
{
|
824
|
+
"rel": "parent",
|
825
|
+
"href": "/grid5000/sites/rennes",
|
826
|
+
"type": "application/vnd.grid5000+json"
|
827
|
+
}]
|
828
|
+
},
|
829
|
+
{
|
830
|
+
"uid": 376463,
|
831
|
+
"user": "tvluong",
|
832
|
+
"start_time": 1297803159,
|
833
|
+
"walltime": 39594,
|
834
|
+
"queue": "default",
|
835
|
+
"state": "error",
|
836
|
+
"project": "default",
|
837
|
+
"links": [{
|
838
|
+
"rel": "self",
|
839
|
+
"href": "/grid5000/sites/rennes/jobs/376463",
|
840
|
+
"type": "application/vnd.grid5000+json"
|
841
|
+
},
|
842
|
+
{
|
843
|
+
"rel": "parent",
|
844
|
+
"href": "/grid5000/sites/rennes",
|
845
|
+
"type": "application/vnd.grid5000+json"
|
846
|
+
}]
|
847
|
+
},
|
848
|
+
{
|
849
|
+
"uid": 376462,
|
850
|
+
"user": "sdelamare",
|
851
|
+
"start_time": 1297802645,
|
852
|
+
"walltime": 3600,
|
853
|
+
"queue": "default",
|
854
|
+
"state": "error",
|
855
|
+
"project": "default",
|
856
|
+
"name": "Test",
|
857
|
+
"links": [{
|
858
|
+
"rel": "self",
|
859
|
+
"href": "/grid5000/sites/rennes/jobs/376462",
|
860
|
+
"type": "application/vnd.grid5000+json"
|
861
|
+
},
|
862
|
+
{
|
863
|
+
"rel": "parent",
|
864
|
+
"href": "/grid5000/sites/rennes",
|
865
|
+
"type": "application/vnd.grid5000+json"
|
866
|
+
}]
|
867
|
+
},
|
868
|
+
{
|
869
|
+
"uid": 376461,
|
870
|
+
"user": "sdelamare",
|
871
|
+
"start_time": 1297802165,
|
872
|
+
"walltime": 3600,
|
873
|
+
"queue": "default",
|
874
|
+
"state": "error",
|
875
|
+
"project": "default",
|
876
|
+
"name": "Test",
|
877
|
+
"links": [{
|
878
|
+
"rel": "self",
|
879
|
+
"href": "/grid5000/sites/rennes/jobs/376461",
|
880
|
+
"type": "application/vnd.grid5000+json"
|
881
|
+
},
|
882
|
+
{
|
883
|
+
"rel": "parent",
|
884
|
+
"href": "/grid5000/sites/rennes",
|
885
|
+
"type": "application/vnd.grid5000+json"
|
886
|
+
}]
|
887
|
+
},
|
888
|
+
{
|
889
|
+
"uid": 376460,
|
890
|
+
"user": "sdelamare",
|
891
|
+
"start_time": 1297801684,
|
892
|
+
"walltime": 3600,
|
893
|
+
"queue": "default",
|
894
|
+
"state": "error",
|
895
|
+
"project": "default",
|
896
|
+
"name": "Test",
|
897
|
+
"links": [{
|
898
|
+
"rel": "self",
|
899
|
+
"href": "/grid5000/sites/rennes/jobs/376460",
|
900
|
+
"type": "application/vnd.grid5000+json"
|
901
|
+
},
|
902
|
+
{
|
903
|
+
"rel": "parent",
|
904
|
+
"href": "/grid5000/sites/rennes",
|
905
|
+
"type": "application/vnd.grid5000+json"
|
906
|
+
}]
|
907
|
+
},
|
908
|
+
{
|
909
|
+
"uid": 376459,
|
910
|
+
"user": "sdelamare",
|
911
|
+
"start_time": 1297801205,
|
912
|
+
"walltime": 3600,
|
913
|
+
"queue": "default",
|
914
|
+
"state": "error",
|
915
|
+
"project": "default",
|
916
|
+
"name": "Test",
|
917
|
+
"links": [{
|
918
|
+
"rel": "self",
|
919
|
+
"href": "/grid5000/sites/rennes/jobs/376459",
|
920
|
+
"type": "application/vnd.grid5000+json"
|
921
|
+
},
|
922
|
+
{
|
923
|
+
"rel": "parent",
|
924
|
+
"href": "/grid5000/sites/rennes",
|
925
|
+
"type": "application/vnd.grid5000+json"
|
926
|
+
}]
|
927
|
+
},
|
928
|
+
{
|
929
|
+
"uid": 376458,
|
930
|
+
"user": "sdelamare",
|
931
|
+
"start_time": 1297800725,
|
932
|
+
"walltime": 3600,
|
933
|
+
"queue": "default",
|
934
|
+
"state": "error",
|
935
|
+
"project": "default",
|
936
|
+
"name": "Test",
|
937
|
+
"links": [{
|
938
|
+
"rel": "self",
|
939
|
+
"href": "/grid5000/sites/rennes/jobs/376458",
|
940
|
+
"type": "application/vnd.grid5000+json"
|
941
|
+
},
|
942
|
+
{
|
943
|
+
"rel": "parent",
|
944
|
+
"href": "/grid5000/sites/rennes",
|
945
|
+
"type": "application/vnd.grid5000+json"
|
946
|
+
}]
|
947
|
+
},
|
948
|
+
{
|
949
|
+
"uid": 376457,
|
950
|
+
"user": "sdelamare",
|
951
|
+
"start_time": 1297800006,
|
952
|
+
"walltime": 3600,
|
953
|
+
"queue": "default",
|
954
|
+
"state": "error",
|
955
|
+
"project": "default",
|
956
|
+
"name": "Test",
|
957
|
+
"links": [{
|
958
|
+
"rel": "self",
|
959
|
+
"href": "/grid5000/sites/rennes/jobs/376457",
|
960
|
+
"type": "application/vnd.grid5000+json"
|
961
|
+
},
|
962
|
+
{
|
963
|
+
"rel": "parent",
|
964
|
+
"href": "/grid5000/sites/rennes",
|
965
|
+
"type": "application/vnd.grid5000+json"
|
966
|
+
}]
|
967
|
+
},
|
968
|
+
{
|
969
|
+
"uid": 376456,
|
970
|
+
"user": "sdelamare",
|
971
|
+
"start_time": 1297799525,
|
972
|
+
"walltime": 3600,
|
973
|
+
"queue": "default",
|
974
|
+
"state": "terminated",
|
975
|
+
"project": "default",
|
976
|
+
"name": "Test",
|
977
|
+
"links": [{
|
978
|
+
"rel": "self",
|
979
|
+
"href": "/grid5000/sites/rennes/jobs/376456",
|
980
|
+
"type": "application/vnd.grid5000+json"
|
981
|
+
},
|
982
|
+
{
|
983
|
+
"rel": "parent",
|
984
|
+
"href": "/grid5000/sites/rennes",
|
985
|
+
"type": "application/vnd.grid5000+json"
|
986
|
+
}]
|
987
|
+
}],
|
988
|
+
"links": [{
|
989
|
+
"rel": "self",
|
990
|
+
"href": "/grid5000/sites/rennes/jobs",
|
991
|
+
"type": "application/vnd.grid5000+json"
|
992
|
+
},
|
993
|
+
{
|
994
|
+
"rel": "parent",
|
995
|
+
"href": "/grid5000/sites/rennes",
|
996
|
+
"type": "application/vnd.grid5000+json"
|
997
|
+
},
|
998
|
+
{
|
999
|
+
"rel": "next",
|
1000
|
+
"href": "/grid5000/sites/rennes/jobs?offset=100",
|
1001
|
+
"type": "application/vnd.grid5000+json"
|
1002
|
+
},
|
1003
|
+
{
|
1004
|
+
"rel": "index",
|
1005
|
+
"href": "/grid5000/sites/rennes/jobs?offset=0",
|
1006
|
+
"type": "application/vnd.grid5000+json"
|
1007
|
+
}]
|
1008
|
+
}
|