hawkular-client 0.2.1 → 0.2.2

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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGES.rdoc +5 -0
  4. data/README.rdoc +4 -4
  5. data/hawkularclient.gemspec +2 -3
  6. data/lib/hawkular.rb +14 -0
  7. data/lib/inventory/inventory_api.rb +67 -42
  8. data/lib/operations/operations_api.rb +2 -5
  9. data/lib/version.rb +1 -1
  10. data/spec/integration/inventory_spec.rb +119 -73
  11. data/spec/integration/operations_spec.rb +29 -54
  12. data/spec/spec_helper.rb +7 -7
  13. data/spec/vcr/vcr_setup.rb +0 -5
  14. data/spec/vcr_cassettes/Inventory/Should_create_a_nested_resource_and_metric_on_it.yml +731 -0
  15. data/spec/vcr_cassettes/Inventory/{Client_should_listen_on_various_inventory_events.yml → Should_list_children_of_nested_resource.yml} +36 -68
  16. data/spec/vcr_cassettes/Inventory/Should_return_config_data_of_given_nested_resource.yml +58 -0
  17. data/spec/vcr_cassettes/{Operation/Helpers/get_tenant.yml → Inventory/Should_return_config_data_of_given_resource.yml} +13 -6
  18. metadata +42 -87
  19. data/spec/vcr_cassettes/Inventory/Client_should_listen_on_various_inventory_events.json +0 -47
  20. data/spec/vcr_cassettes/Inventory/Helpers/generate_some_events_for_websocket.yml +0 -507
  21. data/spec/vcr_cassettes/Inventory/Tenants/Should_Get_Tenant_For_Explicit_Credentials.yml +0 -50
  22. data/spec/vcr_cassettes/Inventory/Tenants/Should_Get_Tenant_For_Implicit_Credentials.yml +0 -50
  23. data/spec/vcr_cassettes/Operation/Operation/Add_JDBC_driver_should_add_the_driver.json +0 -26
  24. data/spec/vcr_cassettes/Operation/Operation/Add_datasource_should_be_doable.json +0 -26
  25. data/spec/vcr_cassettes/Operation/Operation/Add_deployment_should_be_doable.json +0 -26
  26. data/spec/vcr_cassettes/Operation/Operation/Redeploy_can_be_run_multiple_times_in_parallel.json +0 -40
  27. data/spec/vcr_cassettes/Operation/Operation/Redeploy_should_be_performed_and_eventually_respond_with_success.json +0 -26
  28. data/spec/vcr_cassettes/Operation/Operation/Redeploy_should_not_be_performed_if_resource_path_is_wrong.json +0 -26
  29. data/spec/vcr_cassettes/Operation/Operation/Remove_JDBC_driver_should_be_performed_and_eventually_respond_with_success.json +0 -26
  30. data/spec/vcr_cassettes/Operation/Operation/Remove_datasource_should_be_performed_and_eventually_respond_with_success.json +0 -26
  31. data/spec/vcr_cassettes/Operation/Operation/Remove_deployment_should_be_performed_and_eventually_respond_with_success.json +0 -26
  32. data/spec/vcr_cassettes/Operation/Operation/Undeploy_should_be_performed_and_eventually_respond_with_success.json +0 -26
  33. data/spec/vcr_cassettes/Operation/Operation/should_not_be_possible_to_perform_on_closed_client.json +0 -12
  34. data/spec/vcr_cassettes/Operation/Websocket_connection/should_be_established.json +0 -9
@@ -1,47 +0,0 @@
1
- [
2
- [
3
- {
4
- "operation": "read",
5
- "type": "text",
6
- "data": "{\n \"path\" : \"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/r;random-r126\",\n \"type\" : {\n \"path\" : \"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/rt;random-rt-123\",\n \"name\" : \"ResourceType\",\n \"id\" : \"random-rt-123\"\n },\n \"properties\" : {\n \"version\" : 1.0\n },\n \"name\" : \"My Resource 1\",\n \"id\" : \"random-r126\"\n}"
7
- },
8
- {
9
- "operation": "read",
10
- "type": "text",
11
- "data": "{\n \"path\" : \"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/r;random-r127\",\n \"type\" : {\n \"path\" : \"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/rt;random-rt-123\",\n \"name\" : \"ResourceType\",\n \"id\" : \"random-rt-123\"\n },\n \"properties\" : {\n \"version\" : 1.1\n },\n \"name\" : \"My Resource 2\",\n \"id\" : \"random-r127\"\n}"
12
- },
13
- {
14
- "operation": "close"
15
- }
16
- ],
17
- [
18
- {
19
- "operation": "read",
20
- "type": "text",
21
- "data": "{\n \"path\" : \"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed\",\n \"id\" : \"random-feed\"\n}"
22
- },
23
- {
24
- "operation": "close"
25
- }
26
- ],
27
- [
28
- {
29
- "operation": "read",
30
- "type": "text",
31
- "data": "{\n \"path\" : \"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/rt;random-rt-123\",\n \"name\" : \"ResourceType\",\n \"id\" : \"random-rt-123\"\n}"
32
- },
33
- {
34
- "operation": "close"
35
- }
36
- ],
37
- [
38
- {
39
- "operation": "read",
40
- "type": "text",
41
- "data": "{\n \"path\" : \"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed\",\n \"id\" : \"random-feed\"\n}"
42
- },
43
- {
44
- "operation": "close"
45
- }
46
- ]
47
- ]
@@ -1,507 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/
6
- body:
7
- encoding: UTF-8
8
- string: '{"properties":{},"id":"random-feed","name":null,"outgoing":{},"incoming":{}}'
9
- headers:
10
- Accept:
11
- - application/json
12
- Accept-Encoding:
13
- - gzip, deflate
14
- Content-Type:
15
- - application/json
16
- Content-Length:
17
- - '76'
18
- User-Agent:
19
- - Ruby
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Content-Encoding:
26
- - gzip
27
- Expires:
28
- - '0'
29
- Cache-Control:
30
- - no-cache, no-store, must-revalidate
31
- X-Powered-By:
32
- - Undertow/1
33
- Server:
34
- - WildFly/10
35
- Pragma:
36
- - no-cache
37
- Location:
38
- - http://localhost:8080/hawkular/inventory/feeds/random-feed
39
- Date:
40
- - Thu, 24 Mar 2016 12:17:10 GMT
41
- Connection:
42
- - keep-alive
43
- Content-Type:
44
- - application/json
45
- Content-Length:
46
- - '99'
47
- body:
48
- encoding: ASCII-8BIT
49
- string: !binary |-
50
- H4sIAAAAAAAAAKvmUlBQKkgsyVBSsFJQ0i+xNrIwMDJLMjbTtUhLNdE1MTY2
51
- 0rUwSbbQNTUySTU0N040s0hK00+zLkrMS8nP1U1LTU1R0gGZkZkCNgFZnKsW
52
- AJsHA7FeAAAA
53
- http_version:
54
- recorded_at: Thu, 24 Mar 2016 12:17:10 GMT
55
- - request:
56
- method: post
57
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resourceTypes
58
- body:
59
- encoding: UTF-8
60
- string: '{"properties":{},"id":"random-rt-123","name":"ResourceType","outgoing":{},"incoming":{}}'
61
- headers:
62
- Accept:
63
- - application/json
64
- Accept-Encoding:
65
- - gzip, deflate
66
- Content-Type:
67
- - application/json
68
- Content-Length:
69
- - '88'
70
- User-Agent:
71
- - Ruby
72
- response:
73
- status:
74
- code: 201
75
- message: Created
76
- headers:
77
- Content-Encoding:
78
- - gzip
79
- Expires:
80
- - '0'
81
- Cache-Control:
82
- - no-cache, no-store, must-revalidate
83
- X-Powered-By:
84
- - Undertow/1
85
- Server:
86
- - WildFly/10
87
- Pragma:
88
- - no-cache
89
- Location:
90
- - http://localhost:8080/hawkular/inventory/feeds/random-feed/resourceTypes/random-rt-123
91
- Date:
92
- - Thu, 24 Mar 2016 12:17:10 GMT
93
- Connection:
94
- - keep-alive
95
- Content-Type:
96
- - application/json
97
- Content-Length:
98
- - '130'
99
- body:
100
- encoding: ASCII-8BIT
101
- string: !binary |-
102
- H4sIAAAAAAAAAKvmUlBQKkgsyVBSsFJQ0i+xNrIwMDJLMjbTtUhLNdE1MTY2
103
- 0rUwSbbQNTUySTU0N040s0hK00+zLkrMS8nP1U1LTU3RLyqBcYtKdA2NjJV0
104
- QIbmJeamgg0NSi3OLy1KTg2pLEiFSGWmgCVQNXHVAgAT6+NBjAAAAA==
105
- http_version:
106
- recorded_at: Thu, 24 Mar 2016 12:17:10 GMT
107
- - request:
108
- method: get
109
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resourceTypes/random-rt-123
110
- body:
111
- encoding: US-ASCII
112
- string: ''
113
- headers:
114
- Accept:
115
- - application/json
116
- Accept-Encoding:
117
- - gzip, deflate
118
- Content-Type:
119
- - application/json
120
- User-Agent:
121
- - Ruby
122
- response:
123
- status:
124
- code: 200
125
- message: OK
126
- headers:
127
- Content-Encoding:
128
- - gzip
129
- Expires:
130
- - '0'
131
- Cache-Control:
132
- - no-cache, no-store, must-revalidate
133
- X-Powered-By:
134
- - Undertow/1
135
- Server:
136
- - WildFly/10
137
- Pragma:
138
- - no-cache
139
- Date:
140
- - Thu, 24 Mar 2016 12:17:10 GMT
141
- Connection:
142
- - keep-alive
143
- Content-Type:
144
- - application/json
145
- Content-Length:
146
- - '130'
147
- body:
148
- encoding: ASCII-8BIT
149
- string: !binary |-
150
- H4sIAAAAAAAAAKvmUlBQKkgsyVBSsFJQ0i+xNrIwMDJLMjbTtUhLNdE1MTY2
151
- 0rUwSbbQNTUySTU0N040s0hK00+zLkrMS8nP1U1LTU3RLyqBcYtKdA2NjJV0
152
- QIbmJeamgg0NSi3OLy1KTg2pLEiFSGWmgCVQNXHVAgAT6+NBjAAAAA==
153
- http_version:
154
- recorded_at: Thu, 24 Mar 2016 12:17:10 GMT
155
- - request:
156
- method: post
157
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resources
158
- body:
159
- encoding: UTF-8
160
- string: '{"properties":{"version":1.0},"id":"random-r126","name":"My Resource
161
- 1","outgoing":{},"incoming":{},"resourceTypePath":"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/rt;random-rt-123"}'
162
- headers:
163
- Accept:
164
- - application/json
165
- Accept-Encoding:
166
- - gzip, deflate
167
- Content-Type:
168
- - application/json
169
- Content-Length:
170
- - '192'
171
- User-Agent:
172
- - Ruby
173
- response:
174
- status:
175
- code: 201
176
- message: Created
177
- headers:
178
- Content-Encoding:
179
- - gzip
180
- Expires:
181
- - '0'
182
- Cache-Control:
183
- - no-cache, no-store, must-revalidate
184
- X-Powered-By:
185
- - Undertow/1
186
- Server:
187
- - WildFly/10
188
- Pragma:
189
- - no-cache
190
- Location:
191
- - http://localhost:8080/hawkular/inventory/feeds/random-feed/resources/random-r126
192
- Date:
193
- - Thu, 24 Mar 2016 12:17:10 GMT
194
- Connection:
195
- - keep-alive
196
- Content-Type:
197
- - application/json
198
- Content-Length:
199
- - '189'
200
- body:
201
- encoding: ASCII-8BIT
202
- string: !binary |-
203
- H4sIAAAAAAAAAK2QTQ6CMBCF95yi6doK/bE2cgY3xgsUmEYW0KZUE0K4u7QK
204
- UdcuZ97M+97MlCGEnQ43jE4I56FkqmCy4pIoA4IIzhlRolbkwATQI9dSVSY3
205
- pdd9YztiAJrcr5WnTOJddAyjg+g4LcUfAGEjBEIZT4zFttddouALDPbua7hG
206
- 7FtsmyR9Ly7SnAI6bx340MLwEfMBfmhtHzt0X2yzG+Y8opWE6OvQH0p8QDY/
207
- ActLpqNVAQAA
208
- http_version:
209
- recorded_at: Thu, 24 Mar 2016 12:17:10 GMT
210
- - request:
211
- method: get
212
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resources/random-r126
213
- body:
214
- encoding: US-ASCII
215
- string: ''
216
- headers:
217
- Accept:
218
- - application/json
219
- Accept-Encoding:
220
- - gzip, deflate
221
- Content-Type:
222
- - application/json
223
- User-Agent:
224
- - Ruby
225
- response:
226
- status:
227
- code: 200
228
- message: OK
229
- headers:
230
- Content-Encoding:
231
- - gzip
232
- Expires:
233
- - '0'
234
- Cache-Control:
235
- - no-cache, no-store, must-revalidate
236
- X-Powered-By:
237
- - Undertow/1
238
- Server:
239
- - WildFly/10
240
- Pragma:
241
- - no-cache
242
- Date:
243
- - Thu, 24 Mar 2016 12:17:11 GMT
244
- Connection:
245
- - keep-alive
246
- Content-Type:
247
- - application/json
248
- Content-Length:
249
- - '189'
250
- body:
251
- encoding: ASCII-8BIT
252
- string: !binary |-
253
- H4sIAAAAAAAAAK2QTQ6CMBCF95yi6doK/bE2cgY3xgsUmEYW0KZUE0K4u7QK
254
- UdcuZ97M+97MlCGEnQ43jE4I56FkqmCy4pIoA4IIzhlRolbkwATQI9dSVSY3
255
- pdd9YztiAJrcr5WnTOJddAyjg+g4LcUfAGEjBEIZT4zFttddouALDPbua7hG
256
- 7FtsmyR9Ly7SnAI6bx340MLwEfMBfmhtHzt0X2yzG+Y8opWE6OvQH0p8QDY/
257
- ActLpqNVAQAA
258
- http_version:
259
- recorded_at: Thu, 24 Mar 2016 12:17:11 GMT
260
- - request:
261
- method: post
262
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resources
263
- body:
264
- encoding: UTF-8
265
- string: '{"properties":{"version":1.1},"id":"random-r127","name":"My Resource
266
- 2","outgoing":{},"incoming":{},"resourceTypePath":"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/rt;random-rt-123"}'
267
- headers:
268
- Accept:
269
- - application/json
270
- Accept-Encoding:
271
- - gzip, deflate
272
- Content-Type:
273
- - application/json
274
- Content-Length:
275
- - '192'
276
- User-Agent:
277
- - Ruby
278
- response:
279
- status:
280
- code: 201
281
- message: Created
282
- headers:
283
- Content-Encoding:
284
- - gzip
285
- Expires:
286
- - '0'
287
- Cache-Control:
288
- - no-cache, no-store, must-revalidate
289
- X-Powered-By:
290
- - Undertow/1
291
- Server:
292
- - WildFly/10
293
- Pragma:
294
- - no-cache
295
- Location:
296
- - http://localhost:8080/hawkular/inventory/feeds/random-feed/resources/random-r127
297
- Date:
298
- - Thu, 24 Mar 2016 12:17:11 GMT
299
- Connection:
300
- - keep-alive
301
- Content-Type:
302
- - application/json
303
- Content-Length:
304
- - '189'
305
- body:
306
- encoding: ASCII-8BIT
307
- string: !binary |-
308
- H4sIAAAAAAAAAK2QTQ6CMBCF95yi6dqK/REaOYMb4wUKTCMLaNNWE0K4u7QK
309
- UdcuZ97M+97MlCGErQo3jE4I56Fi8sCKmhdEahBEcM6IFI0kRyaAllwVsta5
310
- rpwaWtMTDdDmbq0cZSXeRccwWoiO01L8ARA2QiCU8cRYbAfVJwq+gDd318A1
311
- Yt9i1ybpe3GR5hTQOmPBhQ78R8wHON+ZIXbonm6zG+Y8opWE2OvQH0p8QDY/
312
- AUKRmk5VAQAA
313
- http_version:
314
- recorded_at: Thu, 24 Mar 2016 12:17:11 GMT
315
- - request:
316
- method: get
317
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resources/random-r127
318
- body:
319
- encoding: US-ASCII
320
- string: ''
321
- headers:
322
- Accept:
323
- - application/json
324
- Accept-Encoding:
325
- - gzip, deflate
326
- Content-Type:
327
- - application/json
328
- User-Agent:
329
- - Ruby
330
- response:
331
- status:
332
- code: 200
333
- message: OK
334
- headers:
335
- Content-Encoding:
336
- - gzip
337
- Expires:
338
- - '0'
339
- Cache-Control:
340
- - no-cache, no-store, must-revalidate
341
- X-Powered-By:
342
- - Undertow/1
343
- Server:
344
- - WildFly/10
345
- Pragma:
346
- - no-cache
347
- Date:
348
- - Thu, 24 Mar 2016 12:17:11 GMT
349
- Connection:
350
- - keep-alive
351
- Content-Type:
352
- - application/json
353
- Content-Length:
354
- - '189'
355
- body:
356
- encoding: ASCII-8BIT
357
- string: !binary |-
358
- H4sIAAAAAAAAAK2QTQ6CMBCF95yi6dqK/REaOYMb4wUKTCMLaNNWE0K4u7QK
359
- UdcuZ97M+97MlCGErQo3jE4I56Fi8sCKmhdEahBEcM6IFI0kRyaAllwVsta5
360
- rpwaWtMTDdDmbq0cZSXeRccwWoiO01L8ARA2QiCU8cRYbAfVJwq+gDd318A1
361
- Yt9i1ybpe3GR5hTQOmPBhQ78R8wHON+ZIXbonm6zG+Y8opWE2OvQH0p8QDY/
362
- AUKRmk5VAQAA
363
- http_version:
364
- recorded_at: Thu, 24 Mar 2016 12:17:11 GMT
365
- - request:
366
- method: post
367
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resources
368
- body:
369
- encoding: UTF-8
370
- string: '{"properties":{"version":1.2},"id":"random-r128","name":"My Resource
371
- 3","outgoing":{},"incoming":{},"resourceTypePath":"/t;28026b36-8fe4-4332-84c8-524e173a68bf/f;random-feed/rt;random-rt-123"}'
372
- headers:
373
- Accept:
374
- - application/json
375
- Accept-Encoding:
376
- - gzip, deflate
377
- Content-Type:
378
- - application/json
379
- Content-Length:
380
- - '192'
381
- User-Agent:
382
- - Ruby
383
- response:
384
- status:
385
- code: 201
386
- message: Created
387
- headers:
388
- Content-Encoding:
389
- - gzip
390
- Expires:
391
- - '0'
392
- Cache-Control:
393
- - no-cache, no-store, must-revalidate
394
- X-Powered-By:
395
- - Undertow/1
396
- Server:
397
- - WildFly/10
398
- Pragma:
399
- - no-cache
400
- Location:
401
- - http://localhost:8080/hawkular/inventory/feeds/random-feed/resources/random-r128
402
- Date:
403
- - Thu, 24 Mar 2016 12:17:11 GMT
404
- Connection:
405
- - keep-alive
406
- Content-Type:
407
- - application/json
408
- Content-Length:
409
- - '187'
410
- body:
411
- encoding: ASCII-8BIT
412
- string: !binary |-
413
- H4sIAAAAAAAAAK2QTQ6CMBCF956i6dqK/REbOYMb4wUKTCMLaDNUE0K4u7QK
414
- Udcu37yZ973MuCGEehNulJwIzUIh9F7kpcyZtqCYklIwrSrNDkIBP0qT69Jm
415
- tkDT1a5lFqDOcFHIhabbmBgGDzFxnMUfAGElBMaFTIw5tjNtotAL9O6OFVwj
416
- 9m02dbK+D2drSgU9Og8YGug/aj4A+8Z1ccJ3Yt1dMeeBLCTyKvFLiQ/YTE8t
417
- sAE9VQEAAA==
418
- http_version:
419
- recorded_at: Thu, 24 Mar 2016 12:17:11 GMT
420
- - request:
421
- method: get
422
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed/resources/random-r128
423
- body:
424
- encoding: US-ASCII
425
- string: ''
426
- headers:
427
- Accept:
428
- - application/json
429
- Accept-Encoding:
430
- - gzip, deflate
431
- Content-Type:
432
- - application/json
433
- User-Agent:
434
- - Ruby
435
- response:
436
- status:
437
- code: 200
438
- message: OK
439
- headers:
440
- Content-Encoding:
441
- - gzip
442
- Expires:
443
- - '0'
444
- Cache-Control:
445
- - no-cache, no-store, must-revalidate
446
- X-Powered-By:
447
- - Undertow/1
448
- Server:
449
- - WildFly/10
450
- Pragma:
451
- - no-cache
452
- Date:
453
- - Thu, 24 Mar 2016 12:17:11 GMT
454
- Connection:
455
- - keep-alive
456
- Content-Type:
457
- - application/json
458
- Content-Length:
459
- - '187'
460
- body:
461
- encoding: ASCII-8BIT
462
- string: !binary |-
463
- H4sIAAAAAAAAAK2QTQ6CMBCF956i6dqK/REbOYMb4wUKTCMLaDNUE0K4u7QK
464
- Udcu37yZ973MuCGEehNulJwIzUIh9F7kpcyZtqCYklIwrSrNDkIBP0qT69Jm
465
- tkDT1a5lFqDOcFHIhabbmBgGDzFxnMUfAGElBMaFTIw5tjNtotAL9O6OFVwj
466
- 9m02dbK+D2drSgU9Og8YGug/aj4A+8Z1ccJ3Yt1dMeeBLCTyKvFLiQ/YTE8t
467
- sAE9VQEAAA==
468
- http_version:
469
- recorded_at: Thu, 24 Mar 2016 12:17:11 GMT
470
- - request:
471
- method: delete
472
- uri: http://jdoe:password@localhost:8080/hawkular/inventory/feeds/random-feed
473
- body:
474
- encoding: US-ASCII
475
- string: ''
476
- headers:
477
- Accept:
478
- - application/json
479
- Accept-Encoding:
480
- - gzip, deflate
481
- Content-Type:
482
- - application/json
483
- User-Agent:
484
- - Ruby
485
- response:
486
- status:
487
- code: 204
488
- message: No Content
489
- headers:
490
- Expires:
491
- - '0'
492
- Cache-Control:
493
- - no-cache, no-store, must-revalidate
494
- X-Powered-By:
495
- - Undertow/1
496
- Server:
497
- - WildFly/10
498
- Pragma:
499
- - no-cache
500
- Date:
501
- - Thu, 24 Mar 2016 12:17:12 GMT
502
- body:
503
- encoding: UTF-8
504
- string: ''
505
- http_version:
506
- recorded_at: Thu, 24 Mar 2016 12:17:12 GMT
507
- recorded_with: VCR 3.0.1