boinc_drone 0.0.1 → 0.0.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.
- checksums.yaml +4 -4
- data/README.md +197 -12
- data/bin/boinc_drone +30 -0
- data/lib/boinc_drone.rb +45 -42
- data/lib/boinc_drone/version.rb +1 -1
- metadata +4 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1a0b3edaf818d6f8d699f8888459b25c0de5391d
         | 
| 4 | 
            +
              data.tar.gz: faeb1bfcd721bbed93b934810ebaac9ab84cf27a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0293eb2091a7ef52f2738bc72412cea48e4760ca19d8f04beec6ed21ad5a1d620814efd6d82c67da0b9291c0a2db9d21ebc0d75d550b31371b62ead5a2afe181
         | 
| 7 | 
            +
              data.tar.gz: 5a7dece293ac08ffc673d02f9b8d4ba42fefff19a3fb274d77bd2a3f0056b6b1dd6930b334f66b7e627d4aa23e9685caca9929186d9669453b069ef3dd34731d
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,29 +1,214 @@ | |
| 1 | 
            -
            #  | 
| 1 | 
            +
            # boinc_drone
         | 
| 2 | 
            +
            This script allows the easily deployment of a [Boinc](https://boinc.berkeley.edu) process in a farm where each drone reports back to a main application in JSON.
         | 
| 2 3 |  | 
| 3 | 
            -
             | 
| 4 | 
            +
            ## Requirements
         | 
| 5 | 
            +
            This script leverages the `boinccmd` command and will require that you have the [commandline tool](http://boinc.berkeley.edu/wiki/Boinccmd_tool) installed, configured, and running.
         | 
| 4 6 |  | 
| 5 7 | 
             
            ## Installation
         | 
| 8 | 
            +
            Run this from your terminal:
         | 
| 6 9 |  | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            +
            ```bash
         | 
| 11 | 
            +
            $ gem install "boinc_drone"
         | 
| 12 | 
            +
            ```
         | 
| 10 13 |  | 
| 11 14 | 
             
            And then execute:
         | 
| 12 15 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
                $ gem install boinc_drone
         | 
| 16 | 
            +
            ```bash
         | 
| 17 | 
            +
            $ boinc_drone -a API_KEY -u WEBHOOK_URL -w WORKER_ID # worker_id is optional, it's included for the app this was made for
         | 
| 18 | 
            +
            ```
         | 
| 18 19 |  | 
| 19 20 | 
             
            ## Usage
         | 
| 21 | 
            +
            Every 60 seconds this script will read the commandline output of the `boinccmd --get_state` and convert it to some nice JSON and `POST` it to the supplied `WEBHOOK_URL` with `API_KEY` set as an `X-API-KEY` header. If the `POST` fails for any reason it will fail silently and just keep looping.
         | 
| 20 22 |  | 
| 21 | 
            -
             | 
| 23 | 
            +
            The request body's JSON:
         | 
| 24 | 
            +
            ```json
         | 
| 25 | 
            +
            {
         | 
| 26 | 
            +
              "meta":{
         | 
| 27 | 
            +
                "worker_id": WORKER_ID
         | 
| 28 | 
            +
              },
         | 
| 29 | 
            +
              "projects":[
         | 
| 30 | 
            +
                {
         | 
| 31 | 
            +
                  "name":"LHC@home 1.0",
         | 
| 32 | 
            +
                  "master_url":"http://lhcathome.cern.ch/lhcathome/",
         | 
| 33 | 
            +
                  "user_name":"Matthew",
         | 
| 34 | 
            +
                  "team_name":"",
         | 
| 35 | 
            +
                  "resource_share":"100.000000",
         | 
| 36 | 
            +
                  "user_total_credit":"1767.307159",
         | 
| 37 | 
            +
                  "user_expavg_credit":"148.063753",
         | 
| 38 | 
            +
                  "host_total_credit":"1767.307159",
         | 
| 39 | 
            +
                  "host_expavg_credit":"148.063766",
         | 
| 40 | 
            +
                  "nrpc_failures":"0",
         | 
| 41 | 
            +
                  "master_fetch_failures":"0",
         | 
| 42 | 
            +
                  "master_fetch_pending":"no",
         | 
| 43 | 
            +
                  "scheduler_rpc_pending":"no",
         | 
| 44 | 
            +
                  "trickle_upload_pending":"no",
         | 
| 45 | 
            +
                  "attached_via_account_manager":"yes",
         | 
| 46 | 
            +
                  "ended":"no",
         | 
| 47 | 
            +
                  "suspended_via_gui":"no",
         | 
| 48 | 
            +
                  "don't_request_more_work":"no",
         | 
| 49 | 
            +
                  "disk_usage":"0.000000",
         | 
| 50 | 
            +
                  "last_rpc":"1405565949.830400",
         | 
| 51 | 
            +
                  "project_files_downloaded":"0.000000"
         | 
| 52 | 
            +
                }
         | 
| 53 | 
            +
              ],
         | 
| 54 | 
            +
              "applications":[
         | 
| 55 | 
            +
                {
         | 
| 56 | 
            +
                  "name":"sixtrack",
         | 
| 57 | 
            +
                  "project":"LHC@home 1.0"
         | 
| 58 | 
            +
                }
         | 
| 59 | 
            +
              ],
         | 
| 60 | 
            +
              "application_versions":[
         | 
| 61 | 
            +
                {
         | 
| 62 | 
            +
                  "application":"sixtrack",
         | 
| 63 | 
            +
                  "version":"451.07",
         | 
| 64 | 
            +
                  "project":"LHC@home 1.0"
         | 
| 65 | 
            +
                },
         | 
| 66 | 
            +
                {
         | 
| 67 | 
            +
                  "application":"sixtrack",
         | 
| 68 | 
            +
                  "version":"451.07",
         | 
| 69 | 
            +
                  "project":"LHC@home 1.0"
         | 
| 70 | 
            +
                }
         | 
| 71 | 
            +
              ],
         | 
| 72 | 
            +
              "workunits":[
         | 
| 73 | 
            +
                {
         | 
| 74 | 
            +
                  "name":"sd_HL_7.5_490_1.6_4D_err__1__s__62.31_60.32__0_2__6__35_1_sixvf_boinc7",
         | 
| 75 | 
            +
                  "fp_estimate":"1.800000e+14",
         | 
| 76 | 
            +
                  "fp_bound":"1.800000e+17",
         | 
| 77 | 
            +
                  "memory_bound":"95.37 MB",
         | 
| 78 | 
            +
                  "disk_bound":"190.73 MB"
         | 
| 79 | 
            +
                },
         | 
| 80 | 
            +
                {
         | 
| 81 | 
            +
                  "name":"sd_HL_7.5_490_1.6_4D_err__2__s__62.31_60.32__0_2__6__40_1_sixvf_boinc110",
         | 
| 82 | 
            +
                  "fp_estimate":"1.800000e+14",
         | 
| 83 | 
            +
                  "fp_bound":"1.800000e+17",
         | 
| 84 | 
            +
                  "memory_bound":"95.37 MB",
         | 
| 85 | 
            +
                  "disk_bound":"190.73 MB"
         | 
| 86 | 
            +
                },
         | 
| 87 | 
            +
                {
         | 
| 88 | 
            +
                  "name":"sd_HL_7.5_690_1.6_4D_err__1__s__62.31_60.32__10_12__6__50_1_sixvf_boinc95",
         | 
| 89 | 
            +
                  "fp_estimate":"1.800000e+14",
         | 
| 90 | 
            +
                  "fp_bound":"1.800000e+17",
         | 
| 91 | 
            +
                  "memory_bound":"95.37 MB",
         | 
| 92 | 
            +
                  "disk_bound":"190.73 MB"
         | 
| 93 | 
            +
                },
         | 
| 94 | 
            +
                {
         | 
| 95 | 
            +
                  "name":"sd_HL_7.5_340_1.8_4D_err__5__s__62.31_60.32__8_10__6__15_1_sixvf_boinc479",
         | 
| 96 | 
            +
                  "fp_estimate":"1.800000e+14",
         | 
| 97 | 
            +
                  "fp_bound":"1.800000e+17",
         | 
| 98 | 
            +
                  "memory_bound":"95.37 MB",
         | 
| 99 | 
            +
                  "disk_bound":"190.73 MB"
         | 
| 100 | 
            +
                }
         | 
| 101 | 
            +
              ],
         | 
| 102 | 
            +
              "tasks":[
         | 
| 103 | 
            +
                {
         | 
| 104 | 
            +
                  "name":"sd_HL_7.5_490_1.6_4D_err__1__s__62.31_60.32__0_2__6__35_1_sixvf_boinc7_1",
         | 
| 105 | 
            +
                  "wu_name":"sd_HL_7.5_490_1.6_4D_err__1__s__62.31_60.32__0_2__6__35_1_sixvf_boinc7",
         | 
| 106 | 
            +
                  "project_url":"http://lhcathome.cern.ch/lhcathome/",
         | 
| 107 | 
            +
                  "report_deadline":"Wed Jul 23 03:21:09 2014",
         | 
| 108 | 
            +
                  "ready_to_report":"no",
         | 
| 109 | 
            +
                  "got_server_ack":"no",
         | 
| 110 | 
            +
                  "final_cpu_time":"0.000000",
         | 
| 111 | 
            +
                  "state":"downloaded",
         | 
| 112 | 
            +
                  "scheduler_state":"scheduled",
         | 
| 113 | 
            +
                  "exit_status":"0",
         | 
| 114 | 
            +
                  "signal":"0",
         | 
| 115 | 
            +
                  "suspended_via_gui":"no",
         | 
| 116 | 
            +
                  "active_task_state":"EXECUTING",
         | 
| 117 | 
            +
                  "app_version_num":"45107",
         | 
| 118 | 
            +
                  "checkpoint_cpu_time":"32849.200000",
         | 
| 119 | 
            +
                  "current_cpu_time":"32864.980000",
         | 
| 120 | 
            +
                  "fraction_done":"0.888423",
         | 
| 121 | 
            +
                  "swap_size":"82915328.000000",
         | 
| 122 | 
            +
                  "working_set_size":"58507264.000000",
         | 
| 123 | 
            +
                  "estimated_cpu_time_remaining":"3262.893271"
         | 
| 124 | 
            +
                },
         | 
| 125 | 
            +
                {
         | 
| 126 | 
            +
                  "name":"sd_HL_7.5_490_1.6_4D_err__2__s__62.31_60.32__0_2__6__40_1_sixvf_boinc110_0",
         | 
| 127 | 
            +
                  "wu_name":"sd_HL_7.5_490_1.6_4D_err__2__s__62.31_60.32__0_2__6__40_1_sixvf_boinc110",
         | 
| 128 | 
            +
                  "project_url":"http://lhcathome.cern.ch/lhcathome/",
         | 
| 129 | 
            +
                  "report_deadline":"Wed Jul 23 03:21:09 2014",
         | 
| 130 | 
            +
                  "ready_to_report":"no",
         | 
| 131 | 
            +
                  "got_server_ack":"no",
         | 
| 132 | 
            +
                  "final_cpu_time":"0.000000",
         | 
| 133 | 
            +
                  "state":"downloaded",
         | 
| 134 | 
            +
                  "scheduler_state":"uninitialized",
         | 
| 135 | 
            +
                  "exit_status":"0",
         | 
| 136 | 
            +
                  "signal":"0",
         | 
| 137 | 
            +
                  "suspended_via_gui":"no",
         | 
| 138 | 
            +
                  "active_task_state":"UNINITIALIZED",
         | 
| 139 | 
            +
                  "app_version_num":"0",
         | 
| 140 | 
            +
                  "checkpoint_cpu_time":"0.000000",
         | 
| 141 | 
            +
                  "current_cpu_time":"0.000000",
         | 
| 142 | 
            +
                  "fraction_done":"0.000000",
         | 
| 143 | 
            +
                  "swap_size":"0.000000",
         | 
| 144 | 
            +
                  "working_set_size":"0.000000",
         | 
| 145 | 
            +
                  "estimated_cpu_time_remaining":"11111.865751"
         | 
| 146 | 
            +
                },
         | 
| 147 | 
            +
                {
         | 
| 148 | 
            +
                  "name":"sd_HL_7.5_690_1.6_4D_err__1__s__62.31_60.32__10_12__6__50_1_sixvf_boinc95_1",
         | 
| 149 | 
            +
                  "wu_name":"sd_HL_7.5_690_1.6_4D_err__1__s__62.31_60.32__10_12__6__50_1_sixvf_boinc95",
         | 
| 150 | 
            +
                  "project_url":"http://lhcathome.cern.ch/lhcathome/",
         | 
| 151 | 
            +
                  "report_deadline":"Wed Jul 23 04:30:48 2014",
         | 
| 152 | 
            +
                  "ready_to_report":"no",
         | 
| 153 | 
            +
                  "got_server_ack":"no",
         | 
| 154 | 
            +
                  "final_cpu_time":"0.000000",
         | 
| 155 | 
            +
                  "state":"downloaded",
         | 
| 156 | 
            +
                  "scheduler_state":"uninitialized",
         | 
| 157 | 
            +
                  "exit_status":"0",
         | 
| 158 | 
            +
                  "signal":"0",
         | 
| 159 | 
            +
                  "suspended_via_gui":"no",
         | 
| 160 | 
            +
                  "active_task_state":"UNINITIALIZED",
         | 
| 161 | 
            +
                  "app_version_num":"0",
         | 
| 162 | 
            +
                  "checkpoint_cpu_time":"0.000000",
         | 
| 163 | 
            +
                  "current_cpu_time":"0.000000",
         | 
| 164 | 
            +
                  "fraction_done":"0.000000",
         | 
| 165 | 
            +
                  "swap_size":"0.000000",
         | 
| 166 | 
            +
                  "working_set_size":"0.000000",
         | 
| 167 | 
            +
                  "estimated_cpu_time_remaining":"11111.865751"
         | 
| 168 | 
            +
                },
         | 
| 169 | 
            +
                {
         | 
| 170 | 
            +
                  "name":"sd_HL_7.5_340_1.8_4D_err__5__s__62.31_60.32__8_10__6__15_1_sixvf_boinc479_0",
         | 
| 171 | 
            +
                  "wu_name":"sd_HL_7.5_340_1.8_4D_err__5__s__62.31_60.32__8_10__6__15_1_sixvf_boinc479",
         | 
| 172 | 
            +
                  "project_url":"http://lhcathome.cern.ch/lhcathome/",
         | 
| 173 | 
            +
                  "report_deadline":"Wed Jul 23 06:30:58 2014",
         | 
| 174 | 
            +
                  "ready_to_report":"no",
         | 
| 175 | 
            +
                  "got_server_ack":"no",
         | 
| 176 | 
            +
                  "final_cpu_time":"0.000000",
         | 
| 177 | 
            +
                  "state":"downloaded",
         | 
| 178 | 
            +
                  "scheduler_state":"uninitialized",
         | 
| 179 | 
            +
                  "exit_status":"0",
         | 
| 180 | 
            +
                  "signal":"0",
         | 
| 181 | 
            +
                  "suspended_via_gui":"no",
         | 
| 182 | 
            +
                  "active_task_state":"UNINITIALIZED",
         | 
| 183 | 
            +
                  "app_version_num":"0",
         | 
| 184 | 
            +
                  "checkpoint_cpu_time":"0.000000",
         | 
| 185 | 
            +
                  "current_cpu_time":"0.000000",
         | 
| 186 | 
            +
                  "fraction_done":"0.000000",
         | 
| 187 | 
            +
                  "swap_size":"0.000000",
         | 
| 188 | 
            +
                  "working_set_size":"0.000000",
         | 
| 189 | 
            +
                  "estimated_cpu_time_remaining":"11111.865751"
         | 
| 190 | 
            +
                }
         | 
| 191 | 
            +
              ],
         | 
| 192 | 
            +
              "time_stats":{
         | 
| 193 | 
            +
                "now":"1405569063.884657",
         | 
| 194 | 
            +
                "on_frac":"1.000000",
         | 
| 195 | 
            +
                "connected_frac":"-1.000000",
         | 
| 196 | 
            +
                "cpu_and_network_available_frac":"0.999854",
         | 
| 197 | 
            +
                "active_frac":"0.999854",
         | 
| 198 | 
            +
                "gpu_active_frac":"0.999854",
         | 
| 199 | 
            +
                "client_start_time":"1405183215.367770",
         | 
| 200 | 
            +
                "previous_uptime":"385848.516887"
         | 
| 201 | 
            +
              }
         | 
| 202 | 
            +
            }
         | 
| 203 | 
            +
            ```
         | 
| 22 204 |  | 
| 23 205 | 
             
            ## Contributing
         | 
| 24 206 |  | 
| 25 | 
            -
            1. Fork it ( https://github.com/ | 
| 207 | 
            +
            1. Fork it ( https://github.com/msull92/boinc_drone/fork )
         | 
| 26 208 | 
             
            2. Create your feature branch (`git checkout -b my-new-feature`)
         | 
| 27 209 | 
             
            3. Commit your changes (`git commit -am 'Add some feature'`)
         | 
| 28 210 | 
             
            4. Push to the branch (`git push origin my-new-feature`)
         | 
| 29 211 | 
             
            5. Create a new Pull Request
         | 
| 212 | 
            +
             | 
| 213 | 
            +
            ## License
         | 
| 214 | 
            +
            Do whatever you want with it, just don't hurt anyone or expect me to be responsible for your use of it.
         | 
    
        data/bin/boinc_drone
    ADDED
    
    | @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            lib = File.expand_path(File.dirname(__FILE__) + '/../lib')
         | 
| 4 | 
            +
            $LOAD_PATH.unshift(lib) if File.directory?(lib) && !$LOAD_PATH.include?(lib)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            require "boinc_drone"
         | 
| 7 | 
            +
            require "optparse"
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            params = {}
         | 
| 10 | 
            +
            opt = OptionParser.new do |opt|
         | 
| 11 | 
            +
              opt.on('-k', '--key KEY', 'API key') do |key|
         | 
| 12 | 
            +
                params[:api_key] = key
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              opt.on('-u', '--url URL', 'Webhook URL') do |url|
         | 
| 16 | 
            +
                things[:webhook_url] = url
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
              
         | 
| 19 | 
            +
              opt.on('-w', '--worker ID', 'Woker ID') do |id|
         | 
| 20 | 
            +
                things[:worker_id] = id
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
            end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            opt.parse
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            loop do
         | 
| 27 | 
            +
              @report = BoincDrone::Report.new(params)
         | 
| 28 | 
            +
              @report.post
         | 
| 29 | 
            +
              sleep(60)
         | 
| 30 | 
            +
            end
         | 
    
        data/lib/boinc_drone.rb
    CHANGED
    
    | @@ -3,54 +3,57 @@ require "httparty" | |
| 3 3 | 
             
            require "json"
         | 
| 4 4 |  | 
| 5 5 | 
             
            module BoincDrone
         | 
| 6 | 
            -
               | 
| 7 | 
            -
                 | 
| 8 | 
            -
             | 
| 9 | 
            -
                 | 
| 10 | 
            -
             | 
| 6 | 
            +
              class Report
         | 
| 7 | 
            +
                attr_accessor :api_key, :report, :webhook_url, :worker_id
         | 
| 8 | 
            +
                
         | 
| 9 | 
            +
                def initialize(api_key: "ABC123", webhook_url: "http://localhost:3000", worker_id: "123456")
         | 
| 10 | 
            +
                  @api_key = api_key
         | 
| 11 | 
            +
                  @webhook_url = webhook_url
         | 
| 12 | 
            +
                  @worker_id = worker_id
         | 
| 13 | 
            +
                  
         | 
| 14 | 
            +
                  @report = { 
         | 
| 15 | 
            +
                    meta: {
         | 
| 16 | 
            +
                     worker_id: @worker_id
         | 
| 17 | 
            +
                    }
         | 
| 18 | 
            +
                  }
         | 
| 11 19 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 20 | 
            +
                  input = `boinccmd --get_state`
         | 
| 21 | 
            +
                  input.each_line do |line|
         | 
| 22 | 
            +
                    if line.match(/======== (.+) ========/i)
         | 
| 23 | 
            +
                      match = line.match(/======== (.+) ========/i)
         | 
| 24 | 
            +
                      @scope = match.captures.first.gsub(" ", "_").downcase.to_sym
         | 
| 25 | 
            +
                      instance_variable_set("@#{@scope.to_s}", [])
         | 
| 18 26 |  | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 27 | 
            +
                      if @scope == :time_stats
         | 
| 28 | 
            +
                        @time_stats = {}
         | 
| 29 | 
            +
                        @current = @time_stats
         | 
| 30 | 
            +
                      end
         | 
| 31 | 
            +
                    end
         | 
| 24 32 |  | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            +
                    if line.match(/\d+\) -----------$/i)
         | 
| 34 | 
            +
                      instance_variable_get("@#{@scope.to_s}") << {}
         | 
| 35 | 
            +
                      @current = instance_variable_get("@#{@scope.to_s}").send(:last)
         | 
| 36 | 
            +
                    elsif line.match(/(\S+): (.*)/i)
         | 
| 37 | 
            +
                      match = line.match(/\s+(.+): (.*)/i)
         | 
| 38 | 
            +
                      @current[match.captures.first.gsub(" ", "_").downcase.to_sym] = match.captures[1]
         | 
| 39 | 
            +
                    else
         | 
| 40 | 
            +
                      @report[@scope.to_sym] = instance_variable_get("@#{@scope.to_s}")
         | 
| 41 | 
            +
                    end
         | 
| 42 | 
            +
                  end
         | 
| 33 43 | 
             
                end
         | 
| 34 | 
            -
              end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
              def post_report
         | 
| 37 | 
            -
                begin
         | 
| 38 | 
            -
                  result = HTTParty.post(ENV["WEBHOOK_URL"],
         | 
| 39 | 
            -
                    body: { 
         | 
| 40 | 
            -
                      report: @report
         | 
| 41 | 
            -
                    },
         | 
| 42 | 
            -
                    headers: {
         | 
| 43 | 
            -
                      "X-API-KEY" => ENV["API_KEY"]
         | 
| 44 | 
            -
                    }
         | 
| 45 | 
            -
                  ).body
         | 
| 46 44 |  | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
                     | 
| 45 | 
            +
                def post
         | 
| 46 | 
            +
                  begin
         | 
| 47 | 
            +
                    HTTParty.post(@webhook_url,
         | 
| 48 | 
            +
                      body: { 
         | 
| 49 | 
            +
                        report: @report
         | 
| 50 | 
            +
                      },
         | 
| 51 | 
            +
                      headers: {
         | 
| 52 | 
            +
                        "X-API-KEY" => @api_key
         | 
| 53 | 
            +
                      }
         | 
| 54 | 
            +
                    )
         | 
| 55 | 
            +
                  rescue => e
         | 
| 50 56 | 
             
                  end
         | 
| 51 | 
            -
                rescue => e
         | 
| 52 | 
            -
                  sleep(60)
         | 
| 53 | 
            -
                  post_report
         | 
| 54 57 | 
             
                end
         | 
| 55 58 | 
             
              end
         | 
| 56 59 | 
             
            end
         | 
    
        data/lib/boinc_drone/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: boinc_drone
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Matthew Sullivan
         | 
| @@ -56,7 +56,8 @@ description: This script allows the easily deployment of a boinc process farm wh | |
| 56 56 | 
             
              each drone reports back to a main application.
         | 
| 57 57 | 
             
            email:
         | 
| 58 58 | 
             
            - msull92@gmail.com
         | 
| 59 | 
            -
            executables: | 
| 59 | 
            +
            executables:
         | 
| 60 | 
            +
            - boinc_drone
         | 
| 60 61 | 
             
            extensions: []
         | 
| 61 62 | 
             
            extra_rdoc_files: []
         | 
| 62 63 | 
             
            files:
         | 
| @@ -65,6 +66,7 @@ files: | |
| 65 66 | 
             
            - LICENSE.txt
         | 
| 66 67 | 
             
            - README.md
         | 
| 67 68 | 
             
            - Rakefile
         | 
| 69 | 
            +
            - bin/boinc_drone
         | 
| 68 70 | 
             
            - boinc_drone.gemspec
         | 
| 69 71 | 
             
            - lib/boinc_drone.rb
         | 
| 70 72 | 
             
            - lib/boinc_drone/version.rb
         |