scout_api 0.9.0
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/.document +5 -0
- data/CHANGELOG +3 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +25 -0
- data/LICENSE +20 -0
- data/README.rdoc +81 -0
- data/Rakefile +43 -0
- data/lib/scout_api/account.rb +72 -0
- data/lib/scout_api/alert.rb +17 -0
- data/lib/scout_api/group.rb +73 -0
- data/lib/scout_api/metric.rb +243 -0
- data/lib/scout_api/metric_calculation.rb +61 -0
- data/lib/scout_api/metric_proxy.rb +112 -0
- data/lib/scout_api/person.rb +3 -0
- data/lib/scout_api/plugin.rb +61 -0
- data/lib/scout_api/server.rb +165 -0
- data/lib/scout_api/trigger.rb +11 -0
- data/lib/scout_api/version.rb +3 -0
- data/lib/scout_api.rb +22 -0
- data/scout_scout.gemspec +86 -0
- data/test/alert_test.rb +20 -0
- data/test/fixtures/activities.xml +33 -0
- data/test/fixtures/client.xml +22 -0
- data/test/fixtures/client_by_hostname.xml +23 -0
- data/test/fixtures/clients.xml +59 -0
- data/test/fixtures/data.xml +5 -0
- data/test/fixtures/descriptors.xml +93 -0
- data/test/fixtures/plugin_data.xml +62 -0
- data/test/fixtures/plugins.xml +127 -0
- data/test/fixtures/triggers.xml +40 -0
- data/test/global_test.rb +27 -0
- data/test/metric_proxy_test.rb +17 -0
- data/test/metric_test.rb +32 -0
- data/test/plugin_test.rb +12 -0
- data/test/server_test.rb +97 -0
- data/test/test_helper.rb +53 -0
- metadata +185 -0
| @@ -0,0 +1,93 @@ | |
| 1 | 
            +
            <?xml version="1.0" encoding="UTF-8"?>
         | 
| 2 | 
            +
            <ar-descriptors type="array">
         | 
| 3 | 
            +
              <ar-descriptor>
         | 
| 4 | 
            +
                <name>Passenger/apache_private_total</name>
         | 
| 5 | 
            +
              </ar-descriptor>
         | 
| 6 | 
            +
              <ar-descriptor>
         | 
| 7 | 
            +
                <name>Server Overview/cpu_last_fifteen_minutes</name>
         | 
| 8 | 
            +
              </ar-descriptor>
         | 
| 9 | 
            +
              <ar-descriptor>
         | 
| 10 | 
            +
                <name>Server Overview/cpu_last_five_minutes</name>
         | 
| 11 | 
            +
              </ar-descriptor>
         | 
| 12 | 
            +
              <ar-descriptor>
         | 
| 13 | 
            +
                <name>Server Overview/cpu_last_minute</name>
         | 
| 14 | 
            +
              </ar-descriptor>
         | 
| 15 | 
            +
              <ar-descriptor>
         | 
| 16 | 
            +
                <name>Server Overview/disk_avail</name>
         | 
| 17 | 
            +
              </ar-descriptor>
         | 
| 18 | 
            +
              <ar-descriptor>
         | 
| 19 | 
            +
                <name>Server Overview/disk_capacity</name>
         | 
| 20 | 
            +
              </ar-descriptor>
         | 
| 21 | 
            +
              <ar-descriptor>
         | 
| 22 | 
            +
                <name>Server Overview/disk_size</name>
         | 
| 23 | 
            +
              </ar-descriptor>
         | 
| 24 | 
            +
              <ar-descriptor>
         | 
| 25 | 
            +
                <name>Server Overview/disk_used</name>
         | 
| 26 | 
            +
              </ar-descriptor>
         | 
| 27 | 
            +
              <ar-descriptor>
         | 
| 28 | 
            +
                <name>Network Throughput/eth0_in</name>
         | 
| 29 | 
            +
              </ar-descriptor>
         | 
| 30 | 
            +
              <ar-descriptor>
         | 
| 31 | 
            +
                <name>Network Throughput/eth0_in_packets</name>
         | 
| 32 | 
            +
              </ar-descriptor>
         | 
| 33 | 
            +
              <ar-descriptor>
         | 
| 34 | 
            +
                <name>Network Throughput/eth0_out</name>
         | 
| 35 | 
            +
              </ar-descriptor>
         | 
| 36 | 
            +
              <ar-descriptor>
         | 
| 37 | 
            +
                <name>Network Throughput/eth0_out_packets</name>
         | 
| 38 | 
            +
              </ar-descriptor>
         | 
| 39 | 
            +
              <ar-descriptor>
         | 
| 40 | 
            +
                <name>Network Throughput/eth1_in</name>
         | 
| 41 | 
            +
              </ar-descriptor>
         | 
| 42 | 
            +
              <ar-descriptor>
         | 
| 43 | 
            +
                <name>Network Throughput/eth1_in_packets</name>
         | 
| 44 | 
            +
              </ar-descriptor>
         | 
| 45 | 
            +
              <ar-descriptor>
         | 
| 46 | 
            +
                <name>Network Throughput/eth1_out</name>
         | 
| 47 | 
            +
              </ar-descriptor>
         | 
| 48 | 
            +
              <ar-descriptor>
         | 
| 49 | 
            +
                <name>Network Throughput/eth1_out_packets</name>
         | 
| 50 | 
            +
              </ar-descriptor>
         | 
| 51 | 
            +
              <ar-descriptor>
         | 
| 52 | 
            +
                <name>Server Overview/mem_swap_percent</name>
         | 
| 53 | 
            +
              </ar-descriptor>
         | 
| 54 | 
            +
              <ar-descriptor>
         | 
| 55 | 
            +
                <name>Server Overview/mem_swap_total</name>
         | 
| 56 | 
            +
              </ar-descriptor>
         | 
| 57 | 
            +
              <ar-descriptor>
         | 
| 58 | 
            +
                <name>Server Overview/mem_swap_used</name>
         | 
| 59 | 
            +
              </ar-descriptor>
         | 
| 60 | 
            +
              <ar-descriptor>
         | 
| 61 | 
            +
                <name>Server Overview/mem_total</name>
         | 
| 62 | 
            +
              </ar-descriptor>
         | 
| 63 | 
            +
              <ar-descriptor>
         | 
| 64 | 
            +
                <name>Server Overview/mem_used</name>
         | 
| 65 | 
            +
              </ar-descriptor>
         | 
| 66 | 
            +
              <ar-descriptor>
         | 
| 67 | 
            +
                <name>Server Overview/mem_used_percent</name>
         | 
| 68 | 
            +
              </ar-descriptor>
         | 
| 69 | 
            +
              <ar-descriptor>
         | 
| 70 | 
            +
                <name>Passenger/nginx_processes</name>
         | 
| 71 | 
            +
              </ar-descriptor>
         | 
| 72 | 
            +
              <ar-descriptor>
         | 
| 73 | 
            +
                <name>Passenger/passenger_max_pool_size</name>
         | 
| 74 | 
            +
              </ar-descriptor>
         | 
| 75 | 
            +
              <ar-descriptor>
         | 
| 76 | 
            +
                <name>Passenger/passenger_private_total</name>
         | 
| 77 | 
            +
              </ar-descriptor>
         | 
| 78 | 
            +
              <ar-descriptor>
         | 
| 79 | 
            +
                <name>Passenger/passenger_process_active</name>
         | 
| 80 | 
            +
              </ar-descriptor>
         | 
| 81 | 
            +
              <ar-descriptor>
         | 
| 82 | 
            +
                <name>Passenger/passenger_process_current</name>
         | 
| 83 | 
            +
              </ar-descriptor>
         | 
| 84 | 
            +
              <ar-descriptor>
         | 
| 85 | 
            +
                <name>Passenger/passenger_process_inactive</name>
         | 
| 86 | 
            +
              </ar-descriptor>
         | 
| 87 | 
            +
              <ar-descriptor>
         | 
| 88 | 
            +
                <name>Passenger/passenger_queue_depth</name>
         | 
| 89 | 
            +
              </ar-descriptor>
         | 
| 90 | 
            +
              <ar-descriptor>
         | 
| 91 | 
            +
                <name>Passenger/passenger_vmsize_total</name>
         | 
| 92 | 
            +
              </ar-descriptor>
         | 
| 93 | 
            +
            </ar-descriptors>
         | 
| @@ -0,0 +1,62 @@ | |
| 1 | 
            +
            <plugin>
         | 
| 2 | 
            +
              <code-updated-at type="datetime">2010-01-14T18:39:52-05:00</code-updated-at>
         | 
| 3 | 
            +
              <created-at type="datetime">2010-01-14T18:39:53-05:00</created-at>
         | 
| 4 | 
            +
              <enabled type="boolean">true</enabled>
         | 
| 5 | 
            +
              <failed-at type="datetime" nil="true"></failed-at>
         | 
| 6 | 
            +
              <failing type="boolean">false</failing>
         | 
| 7 | 
            +
              <first-reported-at type="datetime">2010-01-14T18:40:17-05:00</first-reported-at>
         | 
| 8 | 
            +
              <id type="integer">122681</id>
         | 
| 9 | 
            +
              <interval type="integer">0</interval>
         | 
| 10 | 
            +
              <last-reported-at type="datetime">2010-01-30T19:01:00-05:00</last-reported-at>
         | 
| 11 | 
            +
              <name>Passenger</name>
         | 
| 12 | 
            +
              <plugin-url-id type="integer" nil="true"></plugin-url-id>
         | 
| 13 | 
            +
              <status nil="true"></status>
         | 
| 14 | 
            +
              <updated-at type="datetime">2010-01-30T19:01:04-05:00</updated-at>
         | 
| 15 | 
            +
              <url>http://github.com/eric/sevenscale-scout-plugins/raw/master/passenger_united.rb</url>
         | 
| 16 | 
            +
              <descriptors>
         | 
| 17 | 
            +
                <descriptor>
         | 
| 18 | 
            +
                  <name>passenger_process_active</name>
         | 
| 19 | 
            +
                  <value>31</value>
         | 
| 20 | 
            +
                </descriptor>
         | 
| 21 | 
            +
                <descriptor>
         | 
| 22 | 
            +
                  <name>passenger_process_current</name>
         | 
| 23 | 
            +
                  <value>35</value>
         | 
| 24 | 
            +
                </descriptor>
         | 
| 25 | 
            +
                <descriptor>
         | 
| 26 | 
            +
                  <name>apache_vmsize_total</name>
         | 
| 27 | 
            +
                  <value>1613.7</value>
         | 
| 28 | 
            +
                </descriptor>
         | 
| 29 | 
            +
                <descriptor>
         | 
| 30 | 
            +
                  <name>passenger_queue_depth</name>
         | 
| 31 | 
            +
                  <value>0</value>
         | 
| 32 | 
            +
                </descriptor>
         | 
| 33 | 
            +
                <descriptor>
         | 
| 34 | 
            +
                  <name>passenger_max_pool_size</name>
         | 
| 35 | 
            +
                  <value>35</value>
         | 
| 36 | 
            +
                </descriptor>
         | 
| 37 | 
            +
                <descriptor>
         | 
| 38 | 
            +
                  <name>passenger_vmsize_total</name>
         | 
| 39 | 
            +
                  <value>6835.4</value>
         | 
| 40 | 
            +
                </descriptor>
         | 
| 41 | 
            +
                <descriptor>
         | 
| 42 | 
            +
                  <name>passenger_process_inactive</name>
         | 
| 43 | 
            +
                  <value>4</value>
         | 
| 44 | 
            +
                </descriptor>
         | 
| 45 | 
            +
                <descriptor>
         | 
| 46 | 
            +
                  <name>passenger_private_total</name>
         | 
| 47 | 
            +
                  <value>1515.1</value>
         | 
| 48 | 
            +
                </descriptor>
         | 
| 49 | 
            +
                <descriptor>
         | 
| 50 | 
            +
                  <name>nginx_processes</name>
         | 
| 51 | 
            +
                  <value>0</value>
         | 
| 52 | 
            +
                </descriptor>
         | 
| 53 | 
            +
                <descriptor>
         | 
| 54 | 
            +
                  <name>apache_private_total</name>
         | 
| 55 | 
            +
                  <value>10.3</value>
         | 
| 56 | 
            +
                </descriptor>
         | 
| 57 | 
            +
                <descriptor>
         | 
| 58 | 
            +
                  <name>apache_processes</name>
         | 
| 59 | 
            +
                  <value>5</value>
         | 
| 60 | 
            +
                </descriptor>
         | 
| 61 | 
            +
              </descriptors>
         | 
| 62 | 
            +
            </plugin>
         | 
| @@ -0,0 +1,127 @@ | |
| 1 | 
            +
            <?xml version="1.0" encoding="UTF-8"?>
         | 
| 2 | 
            +
            <plugins type="array">
         | 
| 3 | 
            +
              <plugin>
         | 
| 4 | 
            +
                <code-updated-at type="datetime">2010-01-14T18:39:52-05:00</code-updated-at>
         | 
| 5 | 
            +
                <created-at type="datetime">2010-01-14T18:39:53-05:00</created-at>
         | 
| 6 | 
            +
                <enabled type="boolean">true</enabled>
         | 
| 7 | 
            +
                <failed-at type="datetime" nil="true"></failed-at>
         | 
| 8 | 
            +
                <failing type="boolean">false</failing>
         | 
| 9 | 
            +
                <first-reported-at type="datetime">2010-01-14T18:40:17-05:00</first-reported-at>
         | 
| 10 | 
            +
                <id type="integer">122681</id>
         | 
| 11 | 
            +
                <interval type="integer">0</interval>
         | 
| 12 | 
            +
                <last-reported-at type="datetime">2010-01-30T19:01:00-05:00</last-reported-at>
         | 
| 13 | 
            +
                <name>Passenger</name>
         | 
| 14 | 
            +
                <plugin-url-id type="integer" nil="true"></plugin-url-id>
         | 
| 15 | 
            +
                <status nil="true"></status>
         | 
| 16 | 
            +
                <updated-at type="datetime">2010-01-30T19:01:04-05:00</updated-at>
         | 
| 17 | 
            +
                <url>http://github.com/eric/sevenscale-scout-plugins/raw/master/passenger_united.rb</url>
         | 
| 18 | 
            +
                <descriptors>
         | 
| 19 | 
            +
                  <descriptor>
         | 
| 20 | 
            +
                    <name>passenger_process_active</name>
         | 
| 21 | 
            +
                    <value>31</value>
         | 
| 22 | 
            +
                  </descriptor>
         | 
| 23 | 
            +
                  <descriptor>
         | 
| 24 | 
            +
                    <name>passenger_process_current</name>
         | 
| 25 | 
            +
                    <value>35</value>
         | 
| 26 | 
            +
                  </descriptor>
         | 
| 27 | 
            +
                  <descriptor>
         | 
| 28 | 
            +
                    <name>apache_vmsize_total</name>
         | 
| 29 | 
            +
                    <value>1613.7</value>
         | 
| 30 | 
            +
                  </descriptor>
         | 
| 31 | 
            +
                  <descriptor>
         | 
| 32 | 
            +
                    <name>passenger_queue_depth</name>
         | 
| 33 | 
            +
                    <value>0</value>
         | 
| 34 | 
            +
                  </descriptor>
         | 
| 35 | 
            +
                  <descriptor>
         | 
| 36 | 
            +
                    <name>passenger_max_pool_size</name>
         | 
| 37 | 
            +
                    <value>35</value>
         | 
| 38 | 
            +
                  </descriptor>
         | 
| 39 | 
            +
                  <descriptor>
         | 
| 40 | 
            +
                    <name>passenger_vmsize_total</name>
         | 
| 41 | 
            +
                    <value>6835.4</value>
         | 
| 42 | 
            +
                  </descriptor>
         | 
| 43 | 
            +
                  <descriptor>
         | 
| 44 | 
            +
                    <name>passenger_process_inactive</name>
         | 
| 45 | 
            +
                    <value>4</value>
         | 
| 46 | 
            +
                  </descriptor>
         | 
| 47 | 
            +
                  <descriptor>
         | 
| 48 | 
            +
                    <name>passenger_private_total</name>
         | 
| 49 | 
            +
                    <value>1515.1</value>
         | 
| 50 | 
            +
                  </descriptor>
         | 
| 51 | 
            +
                  <descriptor>
         | 
| 52 | 
            +
                    <name>nginx_processes</name>
         | 
| 53 | 
            +
                    <value>0</value>
         | 
| 54 | 
            +
                  </descriptor>
         | 
| 55 | 
            +
                  <descriptor>
         | 
| 56 | 
            +
                    <name>apache_private_total</name>
         | 
| 57 | 
            +
                    <value>10.3</value>
         | 
| 58 | 
            +
                  </descriptor>
         | 
| 59 | 
            +
                  <descriptor>
         | 
| 60 | 
            +
                    <name>apache_processes</name>
         | 
| 61 | 
            +
                    <value>5</value>
         | 
| 62 | 
            +
                  </descriptor>
         | 
| 63 | 
            +
                </descriptors>
         | 
| 64 | 
            +
              </plugin>
         | 
| 65 | 
            +
              <plugin>
         | 
| 66 | 
            +
                <code-updated-at type="datetime">2010-01-14T18:39:52-05:00</code-updated-at>
         | 
| 67 | 
            +
                <created-at type="datetime">2010-01-14T18:39:53-05:00</created-at>
         | 
| 68 | 
            +
                <enabled type="boolean">true</enabled>
         | 
| 69 | 
            +
                <failed-at type="datetime" nil="true"></failed-at>
         | 
| 70 | 
            +
                <failing type="boolean">false</failing>
         | 
| 71 | 
            +
                <first-reported-at type="datetime">2010-01-14T18:40:17-05:00</first-reported-at>
         | 
| 72 | 
            +
                <id type="integer">122682</id>
         | 
| 73 | 
            +
                <interval type="integer">0</interval>
         | 
| 74 | 
            +
                <last-reported-at type="datetime">2010-01-30T19:01:00-05:00</last-reported-at>
         | 
| 75 | 
            +
                <name>Passenger 2</name>
         | 
| 76 | 
            +
                <plugin-url-id type="integer" nil="true"></plugin-url-id>
         | 
| 77 | 
            +
                <status nil="true"></status>
         | 
| 78 | 
            +
                <updated-at type="datetime">2010-01-30T19:01:04-05:00</updated-at>
         | 
| 79 | 
            +
                <url>http://github.com/eric/sevenscale-scout-plugins/raw/master/passenger_united.rb</url>
         | 
| 80 | 
            +
                <descriptors>
         | 
| 81 | 
            +
                  <descriptor>
         | 
| 82 | 
            +
                    <name>passenger_process_active</name>
         | 
| 83 | 
            +
                    <value>31</value>
         | 
| 84 | 
            +
                  </descriptor>
         | 
| 85 | 
            +
                  <descriptor>
         | 
| 86 | 
            +
                    <name>passenger_process_current</name>
         | 
| 87 | 
            +
                    <value>35</value>
         | 
| 88 | 
            +
                  </descriptor>
         | 
| 89 | 
            +
                  <descriptor>
         | 
| 90 | 
            +
                    <name>apache_vmsize_total</name>
         | 
| 91 | 
            +
                    <value>1613.7</value>
         | 
| 92 | 
            +
                  </descriptor>
         | 
| 93 | 
            +
                  <descriptor>
         | 
| 94 | 
            +
                    <name>passenger_queue_depth</name>
         | 
| 95 | 
            +
                    <value>0</value>
         | 
| 96 | 
            +
                  </descriptor>
         | 
| 97 | 
            +
                  <descriptor>
         | 
| 98 | 
            +
                    <name>passenger_max_pool_size</name>
         | 
| 99 | 
            +
                    <value>35</value>
         | 
| 100 | 
            +
                  </descriptor>
         | 
| 101 | 
            +
                  <descriptor>
         | 
| 102 | 
            +
                    <name>passenger_vmsize_total</name>
         | 
| 103 | 
            +
                    <value>6835.4</value>
         | 
| 104 | 
            +
                  </descriptor>
         | 
| 105 | 
            +
                  <descriptor>
         | 
| 106 | 
            +
                    <name>passenger_process_inactive</name>
         | 
| 107 | 
            +
                    <value>4</value>
         | 
| 108 | 
            +
                  </descriptor>
         | 
| 109 | 
            +
                  <descriptor>
         | 
| 110 | 
            +
                    <name>passenger_private_total</name>
         | 
| 111 | 
            +
                    <value>1515.1</value>
         | 
| 112 | 
            +
                  </descriptor>
         | 
| 113 | 
            +
                  <descriptor>
         | 
| 114 | 
            +
                    <name>nginx_processes</name>
         | 
| 115 | 
            +
                    <value>0</value>
         | 
| 116 | 
            +
                  </descriptor>
         | 
| 117 | 
            +
                  <descriptor>
         | 
| 118 | 
            +
                    <name>apache_private_total</name>
         | 
| 119 | 
            +
                    <value>10.3</value>
         | 
| 120 | 
            +
                  </descriptor>
         | 
| 121 | 
            +
                  <descriptor>
         | 
| 122 | 
            +
                    <name>apache_processes</name>
         | 
| 123 | 
            +
                    <value>5</value>
         | 
| 124 | 
            +
                  </descriptor>
         | 
| 125 | 
            +
                </descriptors>
         | 
| 126 | 
            +
              </plugin>
         | 
| 127 | 
            +
            </plugins>
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            <?xml version="1.0" encoding="UTF-8"?>
         | 
| 2 | 
            +
            <triggers type="array">
         | 
| 3 | 
            +
              <trigger>
         | 
| 4 | 
            +
                <id type="integer">119871</id>
         | 
| 5 | 
            +
                <last-fired-at type="datetime">2010-04-08T04:10:00-04:00</last-fired-at>
         | 
| 6 | 
            +
                <max-value type="float">85.0</max-value>
         | 
| 7 | 
            +
                <min-value type="float">0.0</min-value>
         | 
| 8 | 
            +
                <plugin-id type="integer">136421</plugin-id>
         | 
| 9 | 
            +
                <sms-max-value type="float">90.0</sms-max-value>
         | 
| 10 | 
            +
                <sms-percentage-change type="integer" nil="true"></sms-percentage-change>
         | 
| 11 | 
            +
                <simple-type>peak</simple-type>
         | 
| 12 | 
            +
                <title>Alert me when Disk Capacity exceeds 85%. SMS alert at 90%.</title>
         | 
| 13 | 
            +
                <descriptor-label>Disk Capacity</descriptor-label>
         | 
| 14 | 
            +
              </trigger>
         | 
| 15 | 
            +
              <trigger>
         | 
| 16 | 
            +
                <id type="integer">152031</id>
         | 
| 17 | 
            +
                <last-fired-at type="datetime">2010-04-29T14:45:00-04:00</last-fired-at>
         | 
| 18 | 
            +
                <max-value type="float">85.0</max-value>
         | 
| 19 | 
            +
                <min-value type="float">0.0</min-value>
         | 
| 20 | 
            +
                <plugin-id type="integer">136421</plugin-id>
         | 
| 21 | 
            +
                <sms-max-value type="float">90.0</sms-max-value>
         | 
| 22 | 
            +
                <sms-percentage-change type="integer" nil="true"></sms-percentage-change>
         | 
| 23 | 
            +
                <simple-type>peak</simple-type>
         | 
| 24 | 
            +
                <title>Alert me when % Memory Used exceeds 85%. SMS alert at 90%.</title>
         | 
| 25 | 
            +
                <descriptor-label>% Memory Used</descriptor-label>
         | 
| 26 | 
            +
              </trigger>
         | 
| 27 | 
            +
              <trigger>
         | 
| 28 | 
            +
                <id type="integer">119921</id>
         | 
| 29 | 
            +
                <last-fired-at type="datetime" nil="true"></last-fired-at>
         | 
| 30 | 
            +
                <max-value type="float">1.0</max-value>
         | 
| 31 | 
            +
                <min-value type="float">0.0</min-value>
         | 
| 32 | 
            +
                <plugin-id type="integer">136451</plugin-id>
         | 
| 33 | 
            +
                <sms-max-value type="float">10.0</sms-max-value>
         | 
| 34 | 
            +
                <sms-percentage-change type="integer" nil="true"></sms-percentage-change>
         | 
| 35 | 
            +
                <simple-type>peak</simple-type>
         | 
| 36 | 
            +
                <title>Alert me when Passenger Global Queue Depth exceeds 1 . SMS alert at 10 .</title>
         | 
| 37 | 
            +
                <descriptor-label>Passenger Global Queue Depth</descriptor-label>
         | 
| 38 | 
            +
              </trigger>
         | 
| 39 | 
            +
            </triggers>
         | 
| 40 | 
            +
             | 
    
        data/test/global_test.rb
    ADDED
    
    | @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            require File.expand_path('../test_helper.rb', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class GlobalTest < Test::Unit::TestCase
         | 
| 4 | 
            +
              def setup
         | 
| 5 | 
            +
                @scout = Scout::Account.new('account', 'username', 'password')
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              def test_version
         | 
| 9 | 
            +
                assert Scout::VERSION.is_a?(String)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
              
         | 
| 12 | 
            +
              def test_init
         | 
| 13 | 
            +
                assert_equal 'account', @scout.class.param
         | 
| 14 | 
            +
                assert @scout.class.default_options[:basic_auth] == { :username => 'username', :password => 'password' }
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
              
         | 
| 17 | 
            +
              def test_alerts
         | 
| 18 | 
            +
                @scout.stub_get('activities.xml')
         | 
| 19 | 
            +
                activities = @scout.alerts
         | 
| 20 | 
            +
                assert activities.first.is_a?(Scout::Alert)
         | 
| 21 | 
            +
                assert_equal 2, activities.size
         | 
| 22 | 
            +
                activities.each do |activity|
         | 
| 23 | 
            +
                  assert activity.title =~ /Passenger/
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
                  
         | 
| 27 | 
            +
            end
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            require File.expand_path('../test_helper.rb', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class MetricProxyTest < Test::Unit::TestCase
         | 
| 4 | 
            +
              def setup
         | 
| 5 | 
            +
                @scout = Scout::Account.new('account', 'username', 'password')
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              def test_metrics
         | 
| 9 | 
            +
                @scout.stub_get('clients/13431.xml', 'client.xml')
         | 
| 10 | 
            +
                server = Scout::Server.first(13431)
         | 
| 11 | 
            +
                @scout.stub_get('descriptors.xml?name=&ids=&plugin_ids=&server_ids=13431&group_ids=', 'descriptors.xml')
         | 
| 12 | 
            +
                metrics = server.metrics
         | 
| 13 | 
            +
                assert_equal 30, metrics.size
         | 
| 14 | 
            +
                assert metrics.first.is_a?(Scout::Metric)
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
              
         | 
| 17 | 
            +
            end
         | 
    
        data/test/metric_test.rb
    ADDED
    
    | @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            require File.expand_path('../test_helper.rb', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class MetricTest < Test::Unit::TestCase
         | 
| 4 | 
            +
              def setup
         | 
| 5 | 
            +
                @scout = Scout::Account.new('account', 'username', 'password')
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              def test_should_find_all_metrics
         | 
| 9 | 
            +
                @scout.stub_get('descriptors.xml?name=blah&ids=&plugin_ids=&server_ids=&group_ids=','descriptors.xml')
         | 
| 10 | 
            +
                metrics = Scout::Metric.all(:name=>'blah')
         | 
| 11 | 
            +
                assert_equal Scout::Metric, metrics.first.class
         | 
| 12 | 
            +
                assert_equal 30, metrics.size
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
              
         | 
| 15 | 
            +
              def test_should_get_klass_average
         | 
| 16 | 
            +
                @scout.stub_get('data/value?name=cpu_last_minute&ids=&function=AVG&consolidate=AVG&plugin_ids=&server_ids=&group_ids=&start=&end=','data.xml')
         | 
| 17 | 
            +
                result = Scout::Metric.average('cpu_last_minute')
         | 
| 18 | 
            +
                assert result.is_a?(Hash)
         | 
| 19 | 
            +
                assert_equal '31.10', result['value']
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
              
         | 
| 22 | 
            +
              def test_should_get_instance_average
         | 
| 23 | 
            +
                @scout.stub_get('clients/13431.xml', 'client.xml')
         | 
| 24 | 
            +
                server = Scout::Server.first(13431)
         | 
| 25 | 
            +
                @scout.stub_get('clients/13431/plugins.xml', 'plugins.xml')
         | 
| 26 | 
            +
                plugins = server.plugins
         | 
| 27 | 
            +
                @scout.stub_get('data/value?name=passenger_process_active&ids=&function=AVG&consolidate=AVG&plugin_ids=&server_ids=&group_ids=&start=&end=','data.xml')
         | 
| 28 | 
            +
                result = plugins.first.metrics.first.average
         | 
| 29 | 
            +
                assert_equal '31.10', result['value']
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
              
         | 
| 32 | 
            +
            end
         | 
    
        data/test/plugin_test.rb
    ADDED
    
    
    
        data/test/server_test.rb
    ADDED
    
    | @@ -0,0 +1,97 @@ | |
| 1 | 
            +
            require File.expand_path('../test_helper.rb', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class ServerTest < Test::Unit::TestCase
         | 
| 4 | 
            +
              def setup
         | 
| 5 | 
            +
                @scout = Scout::Account.new('account', 'username', 'password')
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              def test_first_by_id
         | 
| 9 | 
            +
                @scout.stub_get('clients/13431.xml', 'client.xml')
         | 
| 10 | 
            +
                server = Scout::Server.first(13431)
         | 
| 11 | 
            +
                assert server.is_a?(Scout::Server)
         | 
| 12 | 
            +
                assert_equal 13431, server.id
         | 
| 13 | 
            +
                assert_equal 'FOOBAR', server.key
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
              
         | 
| 16 | 
            +
              def test_first_by_hostname
         | 
| 17 | 
            +
                @scout.stub_get('clients.xml?host=foo.awesome.com', 'client_by_hostname.xml')
         | 
| 18 | 
            +
                server = Scout::Server.first(:host => 'foo.awesome.com')
         | 
| 19 | 
            +
                assert server.is_a?(Scout::Server)
         | 
| 20 | 
            +
                assert_equal 'FOOBAR', server.key
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
              
         | 
| 23 | 
            +
              def test_find_all
         | 
| 24 | 
            +
                @scout.stub_get('clients.xml')
         | 
| 25 | 
            +
                servers = Scout::Server.all
         | 
| 26 | 
            +
                assert_equal 2, servers.size
         | 
| 27 | 
            +
                assert servers.first.is_a?(Scout::Server)
         | 
| 28 | 
            +
                assert servers.last.active_alerts.first.is_a?(Scout::Alert)
         | 
| 29 | 
            +
                assert servers.last.active_alerts.first.title =~ /Passenger/
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
              
         | 
| 32 | 
            +
              def test_plugin
         | 
| 33 | 
            +
                @scout.stub_get('clients/13431.xml', 'client.xml')
         | 
| 34 | 
            +
                server = Scout::Server.first(13431)
         | 
| 35 | 
            +
                @scout.stub_get('clients/13431/plugins/122681.xml', 'plugin_data.xml')
         | 
| 36 | 
            +
                plugin = server.plugin(122681)
         | 
| 37 | 
            +
                assert plugin.is_a?(Scout::Plugin)
         | 
| 38 | 
            +
                assert_equal 122681, plugin.id
         | 
| 39 | 
            +
                
         | 
| 40 | 
            +
                assert plugin.metrics.first.is_a?(Scout::Metric)
         | 
| 41 | 
            +
                assert_equal '31', plugin.metrics.first.value
         | 
| 42 | 
            +
                assert_equal 'passenger_process_active', plugin.metrics.first.name
         | 
| 43 | 
            +
              end
         | 
| 44 | 
            +
              
         | 
| 45 | 
            +
              def test_plugins
         | 
| 46 | 
            +
                @scout.stub_get('clients/13431.xml', 'client.xml')
         | 
| 47 | 
            +
                server = Scout::Server.first(13431)
         | 
| 48 | 
            +
                @scout.stub_get('clients/13431/plugins.xml', 'plugins.xml')
         | 
| 49 | 
            +
                plugins = server.plugins
         | 
| 50 | 
            +
                
         | 
| 51 | 
            +
                assert_equal 2, plugins.size
         | 
| 52 | 
            +
                plugins.each do |plugin|
         | 
| 53 | 
            +
                  assert plugin.name =~ /Passenger/
         | 
| 54 | 
            +
                  assert_equal 11, plugin.metrics.size
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
                
         | 
| 57 | 
            +
                assert plugins.first.is_a?(Scout::Plugin)
         | 
| 58 | 
            +
              end
         | 
| 59 | 
            +
              
         | 
| 60 | 
            +
              def test_alerts
         | 
| 61 | 
            +
                @scout.stub_get('clients/13431.xml', 'client.xml')
         | 
| 62 | 
            +
                server = Scout::Server.first(13431)
         | 
| 63 | 
            +
                @scout.stub_get('clients/13431/activities.xml', 'activities.xml')
         | 
| 64 | 
            +
                activities = server.alerts
         | 
| 65 | 
            +
                assert_equal 2, activities.size
         | 
| 66 | 
            +
                activities.each do |activity|
         | 
| 67 | 
            +
                  assert activity.title =~ /Passenger/
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
                assert activities.first.is_a?(Scout::Alert)
         | 
| 70 | 
            +
              end
         | 
| 71 | 
            +
              
         | 
| 72 | 
            +
              def test_triggers
         | 
| 73 | 
            +
                @scout.stub_get('clients/13431.xml', 'client.xml')
         | 
| 74 | 
            +
                server = Scout::Server.first(13431)
         | 
| 75 | 
            +
                @scout.stub_get('clients/13431/triggers.xml', 'triggers.xml')
         | 
| 76 | 
            +
                triggers = server.triggers
         | 
| 77 | 
            +
                assert_equal 3, triggers.size
         | 
| 78 | 
            +
                triggers.each do |trigger|
         | 
| 79 | 
            +
                  assert_equal 'peak', trigger.simple_type
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
                assert triggers.first.is_a?(Scout::Trigger)
         | 
| 82 | 
            +
              end
         | 
| 83 | 
            +
              
         | 
| 84 | 
            +
              def test_create
         | 
| 85 | 
            +
                @scout.stub_post('clients.xml?client[copy_plugins_from_client_id]=&client[name]=sweet%20new%20server', 
         | 
| 86 | 
            +
                'client.xml', {:id => '1234'})
         | 
| 87 | 
            +
                @scout.stub_get('clients/1234.xml', 'client.xml')
         | 
| 88 | 
            +
                server = Scout::Server.create('sweet new server')
         | 
| 89 | 
            +
                assert_equal 13431, server.id
         | 
| 90 | 
            +
              end
         | 
| 91 | 
            +
              
         | 
| 92 | 
            +
              def test_delete
         | 
| 93 | 
            +
                @scout.stub_delete('clients/1234.xml','client.xml', {'status' => '200 OK'})
         | 
| 94 | 
            +
                assert Scout::Server.delete(1234)
         | 
| 95 | 
            +
              end
         | 
| 96 | 
            +
              
         | 
| 97 | 
            +
            end
         | 
    
        data/test/test_helper.rb
    ADDED
    
    | @@ -0,0 +1,53 @@ | |
| 1 | 
            +
            $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
         | 
| 2 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '../../lib/scout_api')
         | 
| 3 | 
            +
            require 'test/unit'
         | 
| 4 | 
            +
            require 'fakeweb'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            FakeWeb.allow_net_connect = false
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            class Scout::Account
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def scout_url(path)
         | 
| 11 | 
            +
                uri = URI.join(self.class.default_options[:base_uri], "#{self.class.param}/", path)
         | 
| 12 | 
            +
                uri.userinfo = "#{self.class.default_options[:basic_auth][:username]}:#{self.class.default_options[:basic_auth][:password]}".gsub(/@/, '%40')
         | 
| 13 | 
            +
                url = uri.to_s
         | 
| 14 | 
            +
                url << (url.include?('?') ? '&' : '?') + "api_version=#{Scout::VERSION}"
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              def file_fixture(filename)
         | 
| 18 | 
            +
                open(File.join(File.dirname(__FILE__), 'fixtures', "#{filename.to_s}")).read
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              def stub_get(path, filename = nil, status=nil)
         | 
| 22 | 
            +
                filename = path if filename.nil?
         | 
| 23 | 
            +
                options = {:body => file_fixture(filename)}
         | 
| 24 | 
            +
                options.merge!({:status => status}) unless status.nil?
         | 
| 25 | 
            +
                FakeWeb.register_uri(:get, scout_url(path), options)
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def stub_post(path, filename, headers = {})
         | 
| 29 | 
            +
                FakeWeb.register_uri(:post, scout_url(path), {:body => file_fixture(filename)}.merge(headers))
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              def stub_put(path, filename)
         | 
| 33 | 
            +
                FakeWeb.register_uri(:put, scout_url(path), :body => file_fixture(filename))
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
              def stub_delete(path, filename, headers = {})
         | 
| 37 | 
            +
                FakeWeb.register_uri(:delete, scout_url(path), {:body => file_fixture(filename)}.merge(headers))
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              def stub_http_response_with(filename)
         | 
| 41 | 
            +
                format = filename.split('.').last.intern
         | 
| 42 | 
            +
                data = file_fixture(filename)
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                response = Net::HTTPOK.new("1.1", 200, "Content for you")
         | 
| 45 | 
            +
                response.stub!(:body).and_return(data)
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                http_request = HTTParty::Request.new(Net::HTTP::Get, 'http://localhost', :format => format)
         | 
| 48 | 
            +
                http_request.stub!(:perform_actual_request).and_return(response)
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                HTTParty::Request.should_receive(:new).at_least(1).and_return(http_request)
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            end
         |