vagrant-cloudstack 0.10.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +8 -0
  5. data/Gemfile +5 -2
  6. data/README.md +48 -10
  7. data/build_rpm.sh +1 -1
  8. data/coverage/.last_run.json +5 -0
  9. data/coverage/.resultset.json +569 -0
  10. data/coverage/.resultset.json.lock +0 -0
  11. data/coverage/assets/0.10.0/application.css +799 -0
  12. data/coverage/assets/0.10.0/application.js +1707 -0
  13. data/coverage/assets/0.10.0/colorbox/border.png +0 -0
  14. data/coverage/assets/0.10.0/colorbox/controls.png +0 -0
  15. data/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
  16. data/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
  17. data/coverage/assets/0.10.0/favicon_green.png +0 -0
  18. data/coverage/assets/0.10.0/favicon_red.png +0 -0
  19. data/coverage/assets/0.10.0/favicon_yellow.png +0 -0
  20. data/coverage/assets/0.10.0/loading.gif +0 -0
  21. data/coverage/assets/0.10.0/magnify.png +0 -0
  22. data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  23. data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  24. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  25. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  26. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  27. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  28. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  29. data/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  30. data/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  31. data/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  32. data/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  33. data/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  34. data/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  35. data/coverage/index.html +3438 -0
  36. data/lib/vagrant-cloudstack/action.rb +2 -3
  37. data/lib/vagrant-cloudstack/action/read_ssh_info.rb +14 -6
  38. data/lib/vagrant-cloudstack/action/run_instance.rb +205 -32
  39. data/lib/vagrant-cloudstack/action/terminate_instance.rb +78 -12
  40. data/lib/vagrant-cloudstack/config.rb +65 -1
  41. data/lib/vagrant-cloudstack/version.rb +1 -1
  42. data/locales/en.yml +10 -0
  43. data/spec/spec_helper.rb +5 -0
  44. data/spec/vagrant-cloudstack/config_spec.rb +67 -26
  45. data/vagrant-cloudstack.gemspec +3 -3
  46. metadata +60 -29
  47. data/lib/vagrant-cloudstack/action/sync_folders.rb +0 -88
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41759a933a26fc03edb1e84909cf4dc04f63c46a
4
- data.tar.gz: f77c0919074fd8a7c9694b8c8f55b1b672fcaa0f
3
+ metadata.gz: 893bb8822ad0693dd4f33aa3735a08a2dcab45c0
4
+ data.tar.gz: 05c2ea8060adeed0341182e313fd1b5b086a34f2
5
5
  SHA512:
6
- metadata.gz: 2a9d4dc84e206fc45e88647629858245be3e37d3c5be0a9a98a6b68727aaf5774019e17fb0482fa6abb8d733fc2a82f5b824e562c479b09f80955b8890898b73
7
- data.tar.gz: 8001d1b9bddc343a9113a6c279693a4d810ffb72d4b501ae118ff1ddd5523038a5611fbd1a51e1192eb14b7ad50060dfbd2e82956c4c857af9cb6fb7ef191979
6
+ metadata.gz: 42768fe1daf87a37859b6c4217231990627c680337f3add823120d87230b1e9f4363f32c04211c5269e269fef5c8facf7bf63b144793cfcf24e539edd35d32c0
7
+ data.tar.gz: b87d418911803e534aafb79f185e64ae12f12f33ff98af434b0c191b0a6d3672e19b552098a9a218649217be9c4b01d621c59bc1d4ef1899b40aef0d161c48c0
data/.gitignore CHANGED
@@ -12,3 +12,4 @@ Gemfile.lock
12
12
  .vagrant
13
13
  Vagrantfile
14
14
  !example_box/Vagrantfile
15
+ coverage/
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
  notifications:
3
3
  email:
4
- - engineering.support@klarna.com
4
+ - int-toolkit@schubergphilis.com
5
5
  before_install:
6
6
  - sudo apt-get update -qq
7
7
  - sudo apt-get install -qq -y bsdtar
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # 1.0.0 (May 5, 2015)
2
+ * Use vagrant's built-in rsync synced folder (PR #57)
3
+ * Enable creating custom static NAT, port forwarding, firewall rules (PR #59)
4
+ * Fixed bug when `network_id` and `network_name` are not specified in Vagrantfile (PR #59)
5
+ * Enable setting SSH user name and private key to access VM (PR #64)
6
+ * Fixed bug when `vagrant destroy` destroys other VMs (PR #66)
7
+ * Enable toggling port forwarding automatically adding an open firewall rule (PR #70)
8
+
1
9
  # 0.10.0 (Sep 11, 2014)
2
10
  * Clean up code base DRY
3
11
  * Improve documentation
data/Gemfile CHANGED
@@ -7,7 +7,10 @@ group :development do
7
7
  # gem dependency because we expect to be installed within the
8
8
  # Vagrant environment itself using `vagrant plugin`.
9
9
  gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git"
10
+ gem 'coveralls', require: false
11
+ gem 'simplecov', require: false
10
12
  end
11
13
 
12
- gem 'coveralls', require: false
13
-
14
+ group :plugins do
15
+ gem "vagrant-cloudstack", path: "."
16
+ end
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # Vagrant Cloudstack Provider
2
2
 
3
- [![Build Status](https://travis-ci.org/klarna/vagrant-cloudstack.png?branch=master)](https://travis-ci.org/klarna/vagrant-cloudstack)
3
+ [![Build Status](https://travis-ci.org/schubergphilis/vagrant-cloudstack.png?branch=master)](https://travis-ci.org/schubergphilis/vagrant-cloudstack)
4
4
  [![Gem Version](https://badge.fury.io/rb/vagrant-cloudstack.png)](http://badge.fury.io/rb/vagrant-cloudstack)
5
- [![Dependency Status](https://gemnasium.com/klarna/vagrant-cloudstack.png)](https://gemnasium.com/klarna/vagrant-cloudstack)
6
- [![Code climate](https://codeclimate.com/github/klarna/vagrant-cloudstack.png)](https://codeclimate.com/github/klarna/vagrant-cloudstack)
7
- [![Coverage Status](https://coveralls.io/repos/klarna/vagrant-cloudstack/badge.png)](https://coveralls.io/r/klarna/vagrant-cloudstack)
5
+ [![Code climate](https://codeclimate.com/github/schubergphilis/vagrant-cloudstack.png)](https://codeclimate.com/github/schubergphilis/vagrant-cloudstack)
6
+ [![Coverage Status](https://coveralls.io/repos/schubergphilis/vagrant-cloudstack/badge.svg?branch=master)](https://coveralls.io/r/schubergphilis/vagrant-cloudstack?branch=master)
8
7
 
9
8
  This is a fork of [mitchellh AWS Provider](https://github.com/mitchellh/vagrant-aws/).
10
9
 
@@ -41,7 +40,7 @@ manually within a `config.vm.provider` block. So first, add the dummy
41
40
  box using any name you want:
42
41
 
43
42
  ```
44
- $ vagrant box add dummy https://github.com/klarna/vagrant-cloudstack/raw/master/dummy.box
43
+ $ vagrant box add dummy https://github.com/schubergphilis/vagrant-cloudstack/raw/master/dummy.box
45
44
  ...
46
45
  ```
47
46
 
@@ -112,7 +111,7 @@ well.
112
111
 
113
112
  Every provider in Vagrant must introduce a custom box format. This
114
113
  provider introduces `cloudstack` boxes. You can view an example box in
115
- the [example_box/ directory](https://github.com/klarna/vagrant-cloudstack/tree/master/example_box).
114
+ the [example_box/ directory](https://github.com/schubergphilis/vagrant-cloudstack/tree/master/example_box).
116
115
  That directory also contains instructions on how to build a box.
117
116
 
118
117
  The box format is basically just the required `metadata.json` file
@@ -140,7 +139,7 @@ to update UUIDs in your Vagrantfile. If both are specified, the id parameter tak
140
139
  * `network_id` - Network uuid that the instance should use
141
140
  * `network_name` - Network name that the instance should use
142
141
  * `network_type` - CloudStack Network Type(default: Advanced)
143
- * `project_id` - Project uuid that the instance should belong to
142
+ * `project_id` - Project uuid that the instance should belong to
144
143
  * `service_offering_id`- Service offering uuid to use for the instance
145
144
  * `service_offering_name`- Service offering name to use for the instance
146
145
  * `template_id` - Template uuid to use for the instance
@@ -148,11 +147,18 @@ to update UUIDs in your Vagrantfile. If both are specified, the id parameter tak
148
147
  * `zone_id` - Zone uuid to launch the instance into
149
148
  * `zone_name` - Zone uuid to launch the instance into
150
149
  * `keypair` - SSH keypair name
150
+ * `static_nat` - static nat for the virtual machine
151
151
  * `pf_ip_address_id` - IP address ID for port forwarding rule
152
+ * `pf_ip_address` - IP address for port forwarding rule
152
153
  * `pf_public_port` - Public port for port forwarding rule
153
154
  * `pf_private_port` - Private port for port forwarding rule
155
+ * `pf_open_firewall` - Flag to enable/disable automatic open firewall rule
156
+ * `port_forwarding_rules` - Port forwarding rules for the virtual machine
157
+ * `firewall_rules` - Firewall rules
154
158
  * `display_name` - Display name for the instance
155
159
  * `group` - Group for the instance
160
+ * `ssh_key` - Path to a private key to be used with ssh
161
+ * `ssh_user` - User name to be used with ssh
156
162
 
157
163
  These can be set like typical provider-specific configuration:
158
164
 
@@ -206,7 +212,7 @@ the Cloudstack machine.
206
212
 
207
213
  ### Basic Networking
208
214
 
209
- If you set the `network_type` to `basic`, you can use Security
215
+ If you set the `network_type` to `basic`, you can use Security
210
216
  Groups and associate rules in your Vagrantfile.
211
217
 
212
218
  If you already have Security Groups, you can associate them to your
@@ -252,7 +258,7 @@ Vagrant.configure("2") do |config|
252
258
  cloudstack.secret_key = "bar"
253
259
  cloudstack.network_type = "basic"
254
260
  cloudstack.security_groups = [
255
- {
261
+ {
256
262
  :name => "Awesome_security_group",
257
263
  :description => "Created from the Vagrantfile",
258
264
  :rules => [
@@ -266,6 +272,38 @@ Vagrant.configure("2") do |config|
266
272
  end
267
273
  ```
268
274
 
275
+ ### Static NAT, Firewall, Port forwarding
276
+
277
+ You can create your static nat, firewall and port forwarding rules in the Vagrantfile.
278
+ You can use this rule to access virtual machine from an external machine.
279
+
280
+ The rules created in Vagrantfile are removed when the virtual machine is destroyed.
281
+
282
+ ```ruby
283
+ Vagrant.configure("2") do |config|
284
+ # ... other stuff
285
+
286
+ config.vm.provider :cloudstack do |cloudstack|
287
+
288
+ override.ssh.host = "X.X.X.X"
289
+
290
+ cloudstack.static_nat = [
291
+ { :ipaddress => "A.A.A.A"}
292
+ ]
293
+
294
+ cloudstack.port_forwarding_rules = [
295
+ { :ipaddress => "X.X.X.X", :protocol => "tcp", :publicport => 22, :privateport => 22, :openfirewall => false },
296
+ { :ipaddress => "X.X.X.X", :protocol => "tcp", :publicport => 80, :privateport => 80, :openfirewall => false },
297
+ ]
298
+
299
+ cloudstack.firewall_rules = [
300
+ { :ipaddress => "A.A.A.A", :cidrlist => "1.2.3.4/24", :protocol => "icmp", :icmptype => 8, :icmpcode => 0 },
301
+ { :ipaddress => "X.X.X.X", :cidrlist => "1.2.3.4/24", :protocol => "tcp", :startport => 22, :endport => 22 },
302
+ { :ipaddress => "X.X.X.X", :cidrlist => "1.2.3.4/24", :protocol => "tcp", :startport => 80, :endport => 80 },
303
+ ]
304
+ end
305
+ end
306
+ ```
269
307
 
270
308
  ## Synced Folders
271
309
 
@@ -315,7 +353,7 @@ $ bundle exec rake
315
353
  If those pass, you're ready to start developing the plugin. You can test
316
354
  the plugin without installing it into your Vagrant environment by just
317
355
  creating a `Vagrantfile` in the top level of this directory (it is gitignored)
318
- and add the following line to your `Vagrantfile`
356
+ and add the following line to your `Vagrantfile`
319
357
  ```ruby
320
358
  Vagrant.require_plugin "vagrant-cloudstack"
321
359
  ```
data/build_rpm.sh CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- VERSION=0.10.0
2
+ VERSION=1.0.0
3
3
  mkdir -p /tmp/vagrant-cloudstack-build_rpm.$$/vagrant-cloudstack-$VERSION
4
4
  cp -r . /tmp/vagrant-cloudstack-build_rpm.$$/vagrant-cloudstack-$VERSION/
5
5
  tar -C /tmp/vagrant-cloudstack-build_rpm.$$/ -czf ~/rpmbuild/SOURCES/vagrant-cloudstack-$VERSION.tar.gz vagrant-cloudstack-$VERSION
@@ -0,0 +1,5 @@
1
+ {
2
+ "result": {
3
+ "covered_percent": 84.34
4
+ }
5
+ }
@@ -0,0 +1,569 @@
1
+ {
2
+ "RSpec": {
3
+ "coverage": {
4
+ "/Users/mferreira/development/git/vagrant-cloudstack/lib/vagrant-cloudstack/config.rb": [
5
+ 1,
6
+ null,
7
+ 1,
8
+ 1,
9
+ 1,
10
+ null,
11
+ null,
12
+ null,
13
+ 1,
14
+ null,
15
+ null,
16
+ null,
17
+ null,
18
+ null,
19
+ 1,
20
+ null,
21
+ null,
22
+ null,
23
+ null,
24
+ 1,
25
+ null,
26
+ null,
27
+ null,
28
+ null,
29
+ 1,
30
+ null,
31
+ null,
32
+ null,
33
+ null,
34
+ 1,
35
+ null,
36
+ null,
37
+ null,
38
+ null,
39
+ 1,
40
+ null,
41
+ null,
42
+ null,
43
+ null,
44
+ 1,
45
+ null,
46
+ null,
47
+ null,
48
+ null,
49
+ 1,
50
+ null,
51
+ null,
52
+ null,
53
+ null,
54
+ 1,
55
+ null,
56
+ null,
57
+ null,
58
+ null,
59
+ 1,
60
+ null,
61
+ null,
62
+ null,
63
+ null,
64
+ 1,
65
+ null,
66
+ null,
67
+ null,
68
+ null,
69
+ 1,
70
+ null,
71
+ null,
72
+ null,
73
+ null,
74
+ 1,
75
+ null,
76
+ null,
77
+ null,
78
+ null,
79
+ 1,
80
+ null,
81
+ null,
82
+ null,
83
+ null,
84
+ 1,
85
+ null,
86
+ null,
87
+ null,
88
+ null,
89
+ 1,
90
+ null,
91
+ null,
92
+ null,
93
+ null,
94
+ 1,
95
+ null,
96
+ null,
97
+ null,
98
+ null,
99
+ null,
100
+ 1,
101
+ null,
102
+ null,
103
+ null,
104
+ null,
105
+ null,
106
+ 1,
107
+ null,
108
+ null,
109
+ null,
110
+ null,
111
+ 1,
112
+ null,
113
+ null,
114
+ null,
115
+ null,
116
+ 1,
117
+ null,
118
+ null,
119
+ null,
120
+ null,
121
+ 1,
122
+ null,
123
+ null,
124
+ null,
125
+ null,
126
+ 1,
127
+ null,
128
+ null,
129
+ null,
130
+ null,
131
+ 1,
132
+ null,
133
+ null,
134
+ null,
135
+ null,
136
+ 1,
137
+ null,
138
+ null,
139
+ null,
140
+ null,
141
+ 1,
142
+ null,
143
+ null,
144
+ null,
145
+ null,
146
+ null,
147
+ 1,
148
+ null,
149
+ null,
150
+ null,
151
+ null,
152
+ null,
153
+ 1,
154
+ null,
155
+ null,
156
+ null,
157
+ null,
158
+ null,
159
+ 1,
160
+ null,
161
+ null,
162
+ null,
163
+ null,
164
+ null,
165
+ 1,
166
+ null,
167
+ null,
168
+ null,
169
+ null,
170
+ null,
171
+ null,
172
+ 1,
173
+ null,
174
+ null,
175
+ null,
176
+ null,
177
+ 1,
178
+ null,
179
+ null,
180
+ null,
181
+ null,
182
+ 1,
183
+ null,
184
+ null,
185
+ null,
186
+ null,
187
+ 1,
188
+ null,
189
+ null,
190
+ null,
191
+ null,
192
+ 1,
193
+ null,
194
+ null,
195
+ null,
196
+ null,
197
+ 1,
198
+ null,
199
+ null,
200
+ 1,
201
+ 172,
202
+ 172,
203
+ 172,
204
+ 172,
205
+ 172,
206
+ 172,
207
+ 172,
208
+ 172,
209
+ 172,
210
+ 172,
211
+ 172,
212
+ 172,
213
+ 172,
214
+ 172,
215
+ 172,
216
+ 172,
217
+ 172,
218
+ 172,
219
+ 172,
220
+ 172,
221
+ 172,
222
+ 172,
223
+ 172,
224
+ 172,
225
+ 172,
226
+ 172,
227
+ 172,
228
+ 172,
229
+ 172,
230
+ 172,
231
+ 172,
232
+ 172,
233
+ 172,
234
+ 172,
235
+ 172,
236
+ 172,
237
+ null,
238
+ null,
239
+ null,
240
+ 172,
241
+ 172,
242
+ 172,
243
+ 172,
244
+ null,
245
+ null,
246
+ null,
247
+ null,
248
+ null,
249
+ null,
250
+ null,
251
+ null,
252
+ null,
253
+ null,
254
+ null,
255
+ null,
256
+ null,
257
+ null,
258
+ null,
259
+ 1,
260
+ null,
261
+ null,
262
+ 32,
263
+ null,
264
+ null,
265
+ 32,
266
+ 1,
267
+ 1,
268
+ null,
269
+ null,
270
+ 1,
271
+ null,
272
+ null,
273
+ null,
274
+ 32,
275
+ null,
276
+ null,
277
+ null,
278
+ null,
279
+ null,
280
+ null,
281
+ 1,
282
+ 32,
283
+ null,
284
+ null,
285
+ 32,
286
+ 32,
287
+ null,
288
+ null,
289
+ null,
290
+ null,
291
+ 32,
292
+ 32,
293
+ 0,
294
+ 0,
295
+ null,
296
+ null,
297
+ null,
298
+ 32,
299
+ null,
300
+ null,
301
+ 32,
302
+ 32,
303
+ null,
304
+ null,
305
+ null,
306
+ 1,
307
+ null,
308
+ 139,
309
+ null,
310
+ null,
311
+ 139,
312
+ null,
313
+ null,
314
+ 139,
315
+ null,
316
+ null,
317
+ 139,
318
+ null,
319
+ null,
320
+ null,
321
+ 139,
322
+ null,
323
+ null,
324
+ null,
325
+ 139,
326
+ 139,
327
+ null,
328
+ null,
329
+ 139,
330
+ null,
331
+ null,
332
+ 139,
333
+ null,
334
+ null,
335
+ 139,
336
+ null,
337
+ null,
338
+ 139,
339
+ null,
340
+ null,
341
+ 139,
342
+ null,
343
+ null,
344
+ 139,
345
+ null,
346
+ null,
347
+ 139,
348
+ null,
349
+ null,
350
+ 139,
351
+ null,
352
+ null,
353
+ 139,
354
+ null,
355
+ null,
356
+ 139,
357
+ null,
358
+ null,
359
+ 139,
360
+ null,
361
+ null,
362
+ 139,
363
+ null,
364
+ null,
365
+ 139,
366
+ null,
367
+ null,
368
+ 139,
369
+ null,
370
+ null,
371
+ 139,
372
+ null,
373
+ null,
374
+ 139,
375
+ null,
376
+ null,
377
+ 139,
378
+ null,
379
+ null,
380
+ 139,
381
+ null,
382
+ null,
383
+ 139,
384
+ null,
385
+ null,
386
+ 139,
387
+ null,
388
+ null,
389
+ 139,
390
+ null,
391
+ null,
392
+ 139,
393
+ null,
394
+ null,
395
+ 139,
396
+ null,
397
+ null,
398
+ 139,
399
+ null,
400
+ null,
401
+ 139,
402
+ null,
403
+ null,
404
+ 139,
405
+ null,
406
+ null,
407
+ 139,
408
+ null,
409
+ null,
410
+ 139,
411
+ null,
412
+ null,
413
+ 139,
414
+ null,
415
+ null,
416
+ null,
417
+ 139,
418
+ 107,
419
+ 32,
420
+ null,
421
+ null,
422
+ 64,
423
+ null,
424
+ null,
425
+ null,
426
+ 32,
427
+ null,
428
+ null,
429
+ 32,
430
+ null,
431
+ null,
432
+ 32,
433
+ null,
434
+ null,
435
+ null,
436
+ null,
437
+ 139,
438
+ null,
439
+ null,
440
+ 1,
441
+ 0,
442
+ null,
443
+ 0,
444
+ null,
445
+ null,
446
+ 0,
447
+ null,
448
+ 0,
449
+ null,
450
+ 0,
451
+ null,
452
+ 0,
453
+ null,
454
+ null,
455
+ null,
456
+ 0,
457
+ null,
458
+ null,
459
+ null,
460
+ null,
461
+ 1,
462
+ 62,
463
+ 1,
464
+ null,
465
+ null,
466
+ null,
467
+ 61,
468
+ null,
469
+ null,
470
+ null,
471
+ null
472
+ ],
473
+ "/Users/mferreira/development/git/vagrant-cloudstack/lib/vagrant-cloudstack.rb": [
474
+ 1,
475
+ 1,
476
+ null,
477
+ 1,
478
+ 1,
479
+ 1,
480
+ 1,
481
+ 1,
482
+ null,
483
+ null,
484
+ null,
485
+ null,
486
+ 1,
487
+ 0,
488
+ null,
489
+ null,
490
+ null
491
+ ],
492
+ "/Users/mferreira/development/git/vagrant-cloudstack/lib/vagrant-cloudstack/plugin.rb": [
493
+ 1,
494
+ 1,
495
+ null,
496
+ 0,
497
+ null,
498
+ null,
499
+ null,
500
+ null,
501
+ 1,
502
+ 0,
503
+ null,
504
+ null,
505
+ 1,
506
+ 1,
507
+ 1,
508
+ 1,
509
+ 1,
510
+ null,
511
+ null,
512
+ null,
513
+ null,
514
+ 1,
515
+ 0,
516
+ 0,
517
+ null,
518
+ null,
519
+ 1,
520
+ 0,
521
+ 0,
522
+ null,
523
+ null,
524
+ 0,
525
+ 0,
526
+ null,
527
+ null,
528
+ null,
529
+ 1,
530
+ 0,
531
+ 0,
532
+ null,
533
+ null,
534
+ null,
535
+ 1,
536
+ 0,
537
+ null,
538
+ 0,
539
+ 0,
540
+ 0,
541
+ null,
542
+ null,
543
+ null,
544
+ null,
545
+ 0,
546
+ null,
547
+ null,
548
+ null,
549
+ null,
550
+ null,
551
+ 0,
552
+ null,
553
+ null,
554
+ null,
555
+ 0,
556
+ 0,
557
+ 0,
558
+ 0,
559
+ 0,
560
+ null,
561
+ null,
562
+ null,
563
+ null,
564
+ null
565
+ ]
566
+ },
567
+ "timestamp": 1430816930
568
+ }
569
+ }